The Main Thread

  1. First Class Functions and Delayed Evaluation in Swift

    Functions are first-class citizens in Swift. They can be stored in a variable or constant, passed to another function as a parameter, or returned as the result of another function. This concept of "functions as data" enables the development of complex systems composed of small bits of reusable logic in an elegant and concise way.

    Published on August 29, 2014

  2. Google Place Search API and iOS

    If you're trying to use the Google Place Search API with an iOS public API key and you get the error message, "This IP, site or mobile application is not authorized to use this API key.", this might help.

    Published on August 11, 2014

  3. Swift Lesson of the Day: Properties Aren't Sacred

    Swift properties aren't sacred.

    Published on August 09, 2014

  4. Initializing View Controllers in Swift

    Swift beta 5 introduces some new rules that effect view controller subclasses and initializers.

    Published on August 08, 2014

  5. How to Post to Notification Center From a Shell Script

    Posting to Notification Center center from a shell script is a great way to let yourself know that a potentially long process has completed. Luckily, it takes just one line.

    Published on July 31, 2014

  6. Jabra REVO Wireless Bluetooth Headphones Review

    Jabra could be working on a new version, getting out of the headphone market entirely or retailers are just clearing out excess stock. Whatever the reason, it's a buyers market for these Bluetooth headphones.

    Published on July 11, 2014

  7. WWDC 2014

    WWDC starts tomorrow and from what I've heard it's going to be a big one. Unfortunately, I didn't get a ticket this year so I'll be following along from home.

    Published on May 31, 2014

  8. Understanding Understudy

    Learning is a lot like exercising. It has to become a habit, it's easier with a buddy and you know you're making progress when it hurts. Understudy is a great new app for iOS that pairs people up to study and discuss subjects of mutual interest.

    Published on May 02, 2014

  9. Mapping XML to Objects With NSXMLParser

    Event-based XML parsers, like NSXMLParser, have great performance but they can be difficult to work with because the parser itself discards nearly all state while parsing the document. This leaves all that state handling up to you, the programmer. Even a moderately complicated XML document can easily result in a mess of conditionals, state flags, and temporary variables. So while it's probably not applicable to every XML scenario, I've found the following object-mapper pattern to be an effective way to map XML data to arbitrary objects such as Core Data models.

    Published on April 25, 2014

  10. Replacing a Core Data Store While the Engine's Running

    It's actually quite easy to replace your Core Data backing store even while your application is in use. For example, you may want to replace all the data on the device when a user restores from a backup. In this scenario you could perform the import operation using a separate store, quickly replacing the current store when the data has been restored.

    Published on March 08, 2014