After the dust has settled from the recent iPhone OS 3.0 event, it's time to have a little look over the cool stuff contained within 3.0 and the not so cool stuff.

Push: push looks like being a winner. Although this is tinged with a slight degree of pessimism as it is no replacement for background processes. Apple's view that background processes will significantly hurt the battery life of the iPhone may be valid but I have a sneaking suspicion that this has more to do with the control Apple wishes to retain on the device. The acceptance testing of iPhone applications is not long enough to test whether or not I as a developer have not started a background process that, in a week, pops up an obscene message. With the push notification, everyone will be using Apple's servers which allows Apple to vet every message that is sent using this service. Also, there is no delivery guarantee with the SLA for your notifications.



Copy and Paste: about time. That's all one can say about that.



Accessory Support: not something that interests me directly as I have no means of manufacturing hardware but this presents a great opportunity to get the iPhone (and the iPod Touch specifically) into new arenas. Although I'm waiting for an external keyboard hardware manufacturers!



In application purchase: great - although not available in free applications. I think this is an oversight. The overriding strategy for marketing an iPhone application is to create a free application and use this to bring in paying customers (it worked for Quake!). Now, rather than doing this, wouldn't it be preferable to have one free application that the user can upgrade within the application? Rather than having to go back into the App Store and hunt for the game again, get bored and give up.



Peer to Peer: I'm intrigued by this. There are many non-game applications that would benefit from this, especially the 'in-game voice' features. Social networking, I'm thinking of you.



Maps: in Pay At The Pump and LPGFinder, we use a UIWebView that hits our server to serve back Google Maps pages. This new API allows this function to happen within the device making it quicker. Although I was unsure about the reference regarding having to provide your own tiles at the presentation from Apple. More investigation required



iPod Library Access: OK, I don't have any need for this so far. However I can see the use if you have an 'always on' app such as Palringo as you will now be able to listen to music while using IM



Audio Recording: called the AVFoundtion - 'V' for video? A hint about where this is going?



Core Data: I have to admit that this one got me excited. Being able to plumb a SQLite DB into a view with minimal coding. At last!



In Application Email: again, at last! Seriously, this is long, long overdue.



Streaming video: I have a couple of projects where this has been talked about with a 'wouldn't it be great if we could...' pretext. Well, now we can. At last.

Safari: Safari picks up a lot of the updates for streaming video and audio content. Also supported is the Geolocation JS classes.



Shared Keychain: share a keychain amongst the applications you write. This will allow, amongst other things, single sign on with all your applications.



Other enhancements around shaking the phone, global search, transition styles (including cross-fade, perfect for recreating Star Wars?), "Enhanced support in UIWebView for displaying previews of RTF, RTFD, PDF, iWork, and Office documents" (cool!), playback of multiple compressed files simultaneously



On the user front, MMS, stereo bluetooth and all the other features are great but have minimal bearing on development - although it would be nice to have had those a couple of years ago rather than playing catch-up with this release



What this release didn't include was a few bits that I was really hoping for: access to the calendar, background tasks (as mentioned above) and an improved simulator. However, the pros outweigh the cons from a developer stand point although it does still seem from a consumer point of view that 3.0 is more of a 'catch up to where we should have been with 1.0' release.