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.

Read more…

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.

Read more…

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.

Read more…

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.

Read more…

A Podcast Playlist Primer

Audio podcasts are my favorite way to squeeze in a little entertainment or information while performing other tasks. While I'm driving. When I'm at the store. I almost always have my Earpods in and a couple episodes downloaded and queued up in my player.

Read more…

Building a Universal App for iOS

There are a lot of different ways to build a universal application for iOS and every project is different. By leveraging auto layout, storyboards and custom UIView subclasses you can save time and avoid unnecessary duplication.

Read more…