In the process of implementing Snipster, my newest app creation (see the announcement post), I ran into some interesting problems and tried out some new frameworks and features. What follows are some observations, in no particular order:
After having quickly set up Core Data (it’s a breeze!) and then running into a dead end with ordered relationships and NSFetchedResultsController,1 I now appreciate better why Core Data is both revered and despised.
Auto Layout in iOS 6 is a neat concept in theory, but fiendishly fickle in practice. Interface Builder keeps re-interpreting what I want it to do. And when you’re done, you’re still not safe from inconsistency problems.
Unwind segues are a great time saver in general, but don’t work as expected with custom view controller containers.
I love how Apple continues to incrementally improve on existing APIs. Just take the simplified dequeuing of table-view cells, which in iOS 5 was only available for storyboard prototype cells.
It’s also simply awesome (in the sense of less code, cleanear code, better code) to get rid of those viewDidUnload methods. I never really saw the sense in
-viewDidUnload ever since I started using ARC and
weak IBOutlets for my subviews (which were retained and thus owned by their superview and when deallocated automatically got their references nilled).
Making a fully custom Back button is harder than expected. (No, just setting a custom UIButton as your
navigationItem.leftBarButtonItem doesn’t cut it – look at how the Back button transitions during navigation.)
While researching for this blog post, a mere two weeks later, I now found a promising clever approach in a StackOverflow entry. ↩