I've probably established my preference for Android fairly well at this point, but with the changes announced in the iPhone's second incarnation I think it's worth pointing out a couple of deficiencies that still exist in His Jobs'ness's most gifted child.
Without true native background services the iPhone remains a shiny toy that offers the same-old mobile applications with a glossier skin. It's an improvement, but it's incremental. The game hasn't changed, it's just being played in a new stadium with nicer uniforms.Before I go on let me state for the record that I'm a fan of the iPhone. If Apple had been selling them at stores the day it was unveiled I would have gladly ripped off my right arm and used it to beat my way through hoards of Apple fanboys to get one.
Fortunately for my dexterity, by the time iPhones were in stores I'd convinced myself that a total COO of almost £1000 was just too rich for my blood. I bought a new generation Nano instead and called it even.
I mention this because I really do think the iPhone is an impressive piece of kit. It's beautifully engineered and delivers both style and substance. The array of shiny touch screen mobiles now available can probably be credited to the iPhone setting a new standard in phone hardware and UI design.
But I'm still not buying a new iPhone.
Even with the 3G data and significant price drop I'll still be holding off my long overdue phone upgrade for when Android hits the shelves. Why? Because the iPhone is a really nice implementation of just-another-phone. Android promises to be more than that:
- Background services. The iPhone's push notification service is a 2nd class add-in compared to the fully integrated background Service and Notification models that are central to Android. More than any other factor, Android's native background service model exposes possibilities that just aren't possible on the iPhone.
They are a true game-changer. Android's Alarm mechanism ensures that services don't consume resources if they're not needed, but when they wake up they have full control over when and how they're going to update and how they choose to notify the user. The iPhone generously lets you pick a notification sound. Right. In Android you can write a service that monitors the game and announces the current score using a Morse-code vibration pattern while flash the LEDs in the winning team's colours.
Without the artificial dependency on Apple's 'notification server' your service can update based on anything you like--Internet data, GPS location, device orientation, whatever.
I could go on, but I'll save it for a more appropriate forum. - Map-based applications. Still no native support for embedded Google Maps. Not that that's Apple's fault, but it's an undeniable bonus point for Android.
- Sandboxed distribution. Jailbreaking aside, developers are still locked in to the Apple approved iTunes distribution channel. If they want to charge for their apps, they still have to pay. Fail.
Lets face it, my complaints are fairly developer focused. A lack of background service support isn't likely to slow down the thousands that have been patiently waiting for a 3G iPhone when they rush to queue up at their nearest Apple store on the 11th of next month.
Android's power and flexibility as a developer platform is well established, if it can match the level of iPhone consumer devotion remains to be seen.