My iOS 5 Wishlist
Today marks the beginning of the Apple WWDC 2011. I'm not normally one for attempting predictions, especially not on my blog, so this won't be another predictions post. If you want one of those, then Gruber is your man.
However, with iOS 5 expected to be a significant update, more so perhaps, than the last few big point releases, I have decided to write up a short wish list of features that I'd like to see, both from the perspective of a user and of a developer.
This is the obvious and probably most requested improvement that Apple could make. Let's face it, the iOS notification system sucks. Everybody knows it. When the only notifications you received were missed calls, voicemails and SMS alerts, a modal alert box was acceptable. Throw in alarms, reminders, local and remote push notifications and various others and it's one huge clusterfuck.
One notification overwrites the previous one. There is no way to see a history of notifications. The modal dialog is annoying; especially if it pops up in the middle of another task for instance, in the middle of a game or typing an email. They are as obnoxious and irritating. If iOS 5 had one single improvement, this has to be it.
Contexts / User Modes
This is a feature that is borne out of a relatively recent pain of mine, yet it's something that I remember having on my phone years ago. We all use our iPhones in different contexts; at home, in the car, in the office. The chances are, we probably have different settings for our phone in these different contexts.
At home or in the office, I want to turn off Bluetooth to save battery and connect to my Wi-Fi network. In my car, I want Bluetooth on so I can stream audio to my car stereo using A2DP and disable Wi-Fi so I don't get network discovery alerts appearing while I'm driving. Currently, whenever I get in the car, to enable Bluetooth - from the lock screen - it requires SIX taps. When you get in and out of your car frequently, this gets annoying fast.
First and foremost I'd welcome a way of accessing frequent settings more quickly (without jailbreaking) but to be able to have different contexts with different settings and be able to switch between them quickly would be really handy.
This is as much a developer want as a user want. If you're writing an app and you want to provide a "Share to Facebook/Twitter" function, an "Upload this photo to Flickr" function, or a "Send to Instapaper" function you have to roll your own (or use an open source component).
Wouldn't it be better if instead, a Twitter app installed on your phone could provide a "Post to Twitter" service which other apps could use? Services would be registered with the user's permission when the app first launches and can be disabled at any time from the Settings app. Other apps could then use the SDK to query for services they can make use of. Services would handle requests in the background making the process as transparent as possible.
Improved lock screen
The current iPhone lock screen is a big ol' waste of space. I'd expect it to be part of any improved notification system so you could see, at a glance, your recent notifications.
One more thing...wireless synching
People have been talking about wireless synching of devices ever since the iPhone debuted. With Apple's new iCloud service right around the corner, those voices have been getting louder.
Realistically, I still believe that cable is going to be the main method of synching your iPhone in iOS 5; at least for music anyway. USB 2.0 remains faster than Wi-Fi and USB 3.0 and Thunderbolt are much faster. But there are other things that could be synched wirelessly - app updates for instance, could happen automatically in the background. I'm rather obsessive about clearing my iOS badge notifications as it is and I'm incredibly bored of having to launch the App Store just so I can hit the "Update All" button.
I'd also like to see better synchronisation of preferences and state across devices. Where it makes sense, apps (games included) should be able to synchronise their state - the last position in your Twitter stream, your game progress etc. - including your Mac! Incremental OS updates would also be welcome.
Sync is a problem that developers have tried to solve themselves and as they have found out, it's not easy. Some kind of native sync API in the SDK, one that perhaps ties in with Core Data, would be a massive feature for developers and ultimately, for users.
It's the software, stupid
Whatever Apple has up their sleeves today, I'm certain that the focus would be joined-up computing. Lion, iOS 5 and iCloud, whatever it is, have to be aimed at making the multi-device experience better because as things stand today, it's pretty half-baked.
I expect WWDC to demonstrate why it's the software that matters and that it's software that gives Apple the competitive advantage.