There’s no shortage of hype around the arrival of iOS5 this week. Much of it has been about iCloud, ARC, notifications, and Siri of course. These are big deals to be sure, but for a coder there’s some great improvements that simply make your development process easier. Here’s my list of favorites, some of which I’ve already started using:
CoreImage and CIFilters – The addition of the CoreImage framework will give you more ways to create compelling UIs. CIFiltlers aren’t limited just to images. You can apply them to any CALayer.
UIAppearance – It used to be that if you wanted a custom looking UISwitch or or UIProgressView you’d have to implement it from scratch or try and rip the control apart view by view and modify it yourself. Writing a custom control is of course time consuming and modifying the view hierarchy leaves your UI at the mercy of the next iOS update. UIAppearance and the appearance proxies let you configure the look of the default controls in ways you couldn’t before either on a per instance or hierarchy level, or application wide.
Container View Controllers – Absolutely huge, probably my the most useful improvement for me. It used to be that if you wanted a custom container, like a tab bar or split view, you had to implement it yourself from scratch. It was always problematic and you often had to hack properties like myParentViewController because the property was locked down. Now you can make container view controllers and the existing controllers (and containers like UINavigationController) will play nice with them.
Real locations in the simulator – You’re probably not really at Apple headquarters anyway. Glad the simulator has finally caught on 😉
Ordered relationships in CoreData – If you’ve ever tried to do this on your own, you know how valuable this can be. Not only does your “group” have “users”, they now have an ordered collection of “users”.
EventKit upgrades – What strikes me a severe limitation of EventKit is that up until now you can’t create calendars in your iOS app. EventKit upgrades now allow it.