So why yes, it’s time to get right on that iOS 5 thing now, isn’t it? Final Xcode 4.2 available, public iOS Developer Library just chock full of today-dated new content for you to read through — so far, our favourite is
A CIFaceFeature object describes a face detected in a picture. Its properties provide locations for the face’s eyes and mouth.
Not quite sure just why that tickles our funny bone so. Perhaps there’s too much DXM in our cough syrup. Good times, good times.
Any-ways, once you browse through the mothership’s goodies, and the iOS 5 Readiness Checklist, here’s some other places to check out:
First — of course! — head over to His Superlative Tutorialness Ray Wenderlich’s site for
The iOS Feast consists of the following five courses:
Optional appetizer: User Interface Customization in iOS 5
First course: iOS Apprentice
Second course: iOS 5 By Tutorials
Third course: iOS 5 Tutorial Month
Dessert: iOS 5 Feast Giveaway
During the iOS 5 Feast, you’ll get to sink your teeth into GLKit, serve yourself with Storyboards, nibble on ARC, and gorge yourself on tons of other cool new APIs in iOS 5. By the time you’re done, you’ll feel like you’re on (i)Cloud 9! :]
Second, you want to do more than “nibble” on ARC, you want to visit more-than-superlative Mike Ash’s dissection
However, one thing that Messr. Ash does not discuss there, presumably because he finds it too obvious to mention, is that ARC and exceptions do not mix well:
In Objective-C exceptions are meant to be used ONLY in truly exceptional conditions. Cases where you’re willing to have your app crash if they occur.
(We point this out especially for the benefit of those who haven’t read the ‘Exceptions’ section of Why Dart is not the language of the future. Which has nothing to do with iOS 5, we just read that today and found it funny. Damn cough syrup.)
Also worthwhile to read the post after that last one,
just for a good example of the kind of thing that no doubt we’re all going run into getting our heads around this ARC thing.
And for backwards compatibility, be aware of ZWRCompatibility
Support Objective-C zeroing weak references with unsafe fallback on non-OS X 10.7/iOS 5.0
to help out with the weak vs. unsafe_unretained thing.
Some more general tips and reminders to skim over here:
And as a final for now topic, just in case you missed the kerfluffle this summer, UDIDs are now deprecated:
Do not use the uniqueIdentifier property. To create a unique identifier specific to your app, you can call the CFUUIDCreate function to create a UUID, and write it to the defaults database using the NSUserDefaults class.
Well, if you were trying to provide a user persistent experience, that’s a bit of a burn there, isn’t it? Some alternatives you may wish to look into:
OpenUDID.org — “Open source initiative for a universal and persistent UDID solution for iOS”
UIDevice-with-UniqueIdentifier-for-iOS-5 — “uses the device’s mac address in combination with the bundle identifier to generate a new hashed unique identifier”
How to Replace the UDID — “generate a fresh UUID on the first launch of our app and store it to the user defaults database…” in accordance with Apple’s instructions above.
Any other welcome-to-iOS-5 resources you’ve seen worth noting here, Dear Readers?
The good folk over at ManiacDev also have good iOS 5 roundups:
UISegmentedControl subclass for iOS5 works around setting segment no longer calling associated method.