Rounded Corner Button in Swift

It’s very simple to create buttons with rounded corners. Create a button like you normally would in Interface Builder, create an Outlet to it, and then in viewDidLoad, set the attributes like this:

button.layer.borderWidth = 3.0
button.layer.borderColor = UIColor.white.cgColor // Set this to the background color of your button
button.layer.cornerRadius = 8.0

Laravel New Project Steps

Here are my steps for creating a new laravel project. I know the docs are excellent but these are the steps specific to my setup, which is probably pretty common. For reference, I use the laravel installer to create new projects and I use Homestead. I already have Homestead set up so it’s just a matter of changing a few things and the inevitable updates, since this is something I don’t do frequently (thus the need for notes).

1. update laravel installer
composer global update "laravel/installer"

2. create the laravel project
laravel new projectname
cd projectname

3. Update Homestead
cd into your Homestead directory and edit the Homestead.yaml file
Add a new entry to the sites section

4. run
vagrant reload --provision

5. Update your hosts file to add projectname
open -a "Sublime Text" /etc/hosts
use .test extension (I’ve had issues with Chrome and .dev or .app extensions not working)

6. Launch the vagrant box
vagrant up

7. SSH into Homestead and cd into the projectname directory
run
composer install

9. Create a .env file in your project root
Copy everything from .env.example into .env

10. Generate the Application Key from Homestead (all php artisan commands have to be run from Homestead on my setup)
php artisan key:generate

11. Navigate to your projectname.test in the browser – you should get the Laravel welcome page

Custom key bindings in Xcode 8

I hate that Xcode doesn’t include a duplicate line shortcut. I have to keep adding it in every time a new version of Xcode comes out and every time, I have to Google it, so I’m pasting the SO post here that worked most recently. There must be a better way, but until I figure that out, here’s what has worked for me.

Open

/Applications/Xcode.app/Contents/Frameworks/IDEKit.framework/Versions/A/Resources/IDETextKeyBindingSet.plist

And add:

<key>Custom Commands</key>
<dict>
    <key>Cut Current Line</key>
    <string>selectLine:, cut:</string>
    <key>Copy Current Line</key>
    <string>selectLine:, copy:</string>
    <key>Duplicate Current Line</key>
    <string>selectLine:, copy:, moveToEndOfLine:, insertNewline:, paste:, deleteBackward:</string>
</dict>

Then restart Xcode and go to Preferences -> Key Bindings and assign your shortcuts.

This was taken from: https://stackoverflow.com/a/41579618

Play Music in iOS

Here’s a utility to play background music for iOS in Swift:

First, import AVFoundation. Then add:

var backgroundMusicPlayer: AVAudioPlayer!

func playBackgroundMusic(filename: String) {
    let resourceUrl = Bundle.main.url(forResource: filename, withExtension: nil)
    guard let url = resourceUrl else {
        print("Could not find file: \(filename)")
        return
    }
    
    do {
        try backgroundMusicPlayer = AVAudioPlayer(contentsOf: url)
        backgroundMusicPlayer.numberOfLoops = -1 // endless loop
        backgroundMusicPlayer.prepareToPlay()
        backgroundMusicPlayer.play()
    } catch {
        print("Could not create audio player")
        return
    }
}

Use it like this:

playBackgroundMusic(filename: "backgroundMusic.mp3")