Apple recently pre-announced their iPhone 3.0 smartphone operating system, and as usual there was much speculation, rumor and misinformation about what would be in it and what would be out.
Having gotten pretty deep into this iPhone world myself as both a developer and as a real consumer, I had my own "Christmas Wish List" for what I would have loved to see in the next major version:
1. Multitasking/background support for 3rd party apps
2. Native document support (word, excel, etc)
3. Some sort of file access/file syncing capability that is more obvious and mainstream than mobileme.
4. Server push data model
5. Support for different screen dimensions (pave the way for future models)
Well, as it turned out, I went only 1-for-5, which is a pretty poor batting average. In my defense, my thinking on this list was very much centered on Apple's prior stated intentions of making headway into the enterprise market, and the items on my list are for the most part all supported today by BlackBerry and Windows Mobile, Apple's main smartphone competition in the corporate world.
Instead, Apple announced the following:
1. Copy and Paste. For the life of me I don't get what all the hoopla was about with this feature. Its a minor utility feature on other phones, certainly nothing worthy of being a major new feature. Frankly I can count on one hand the number of times I've actually used copy/paste on my BlackBerry or other smartphone devices. In any case, not terribly relevant from a 3rd party application development perspective.
2. Push notification service. OK, this is something important, its something RIM has had forever in its BES/BIS server products, and it does enable a variety of interesting new ways to integrate local apps with server side functionality and content. All well and good, except for one thing......along with the push announcement came a pretty clear signal from Apple that they were *not* going to be supporting background processing anytime soon, and from their tone, perhaps not ever. Its hard for me to really understand, but Apple seems to have convinced itself that background app processing is evil, sucks the life from your battery, and causes global warming.
This is simply not true.
Yes, it opens the door for somebody to write a piggish app that runs in the background and which unnecessarily runs the battery down. But this ignores the fact that well-designed apps are well-behaved and use background processing sparingly. I get easily a full day out of my BlackBerry Bold, and thats with several apps "running" in the background. "Running" is a strong word, as for the most part these apps are idle and doing absolutely nothing. Some of them, including The Weather Channel app that we designed, periodically request new data from the server and thus can proactively update my weather content without me having to constantly ask for it. This periodic server request has virtually no impact on performance or battery life, and is a key feature of the app. The way Apple has described Push, this feature is simply not possible on iPhone. Yes it is possible to send a weather update notification from a server to the iPhone, but the user would have to get notified and must physically stop what they are doing, close their current app, and launch into the weather channel app in order to retrieve the new forecast. If the user decides to ignore the notification, they don't get the update.
Not good. Apple, if you are listening, please add multitasking support for 3rd party apps. By not doing so, you rule out and make impossible a whole slew of interesting and useful kinds of applications and features.
3. Accessories. Apple is now opening up the device a bit to allow for 3rd party hardware accessories to work with the iPhone. This is great, it offers all kinds of possibilities ranging from healthcare monitors to peripheral connections to fitness accessories like Nike Plus.
4. Maps. Another nice move, as there are now hundreds of apps that use maps and location based services, all of which have had to figure out how to integrate maps and do their own geocoding. Again, BlackBerry has had this for a while.
5. In-App Purchase. This sounds good at least in theory. The 3.0 announcement seemed to indicate that this opens the door to apps allowing users to purchase additional features or extended app usage or accessories, right from within the app. But its not clear to me yet how this will work or what types are scenarios will truly be allowed. From what I've read, I don't believe this will allow for try-buy scenarios, nor is it terribly clear that it will support a subscription based commerce model, or whether it will be possible to check a consumer's payment status from within the app.
There were other things announced as part of 3.0, but these were the main announcements (or in the case of multitasking, non-announcements!). Stay tuned as more details come out, along with presumably some new iPhone models later in the year.