Second Impressions of Android
Courtesy of insomnia and a few days over the Christmas period to think about it, some more thoughts on Android, Google's open source OS for mobile devices.
Like others, I still don't quite get it.
The developer tools look decent, and the very component-driven architecture of it all presses a few technical buttons for me; Android apps can be thought of in terms of Activities (e.g. "taking a photo", "sending an email") which are plugged together. These Activities can be updated or overridden - so that if you release a beautiful "Taking a photo" Activity, I can choose to use yours instead of the boring default one I currently have. It's an interestingly different approach and vaguely reminiscent of the promise of OLE in Windows, harking back to a time when we were all going to edit documents by embedding spreadsheets, word processor docs, charts etc. into each other and retaining live data links. Technically interesting, perhaps, but most people I see using Office these days choose not to use these features to any great degree; I wonder if in Android the Activity-driven approach will get more traction. There's also a side-issue I don't understand: how you achieve UI consistency in your applications when individual components can be swapped out?
But beyond this, what is Android offering? I was initially excited about deep integration with handset capabilities (address book, location, etc.) but on reflection all of this is feasible with J2ME today. Sure, it's wrapped up in a braindead certification process which continually annoys users with prompts requesting permission to, say, connect over the network (and in fact trains them to ignore said prompts) - but operators could easily circumvent this tomorrow by launching devices with this permissioning loosened, so I'm not sure that the integration Android promises is such a big win... unless it just persuades the rest of the industry to Do The Right Thing, which I've been told could be considered a goal for Android.
Fragmentation remains a problem. Android is another platform, designed to be extensively customised (lots of form factors, lots of optional APIs and capabilities), and being open source it'll be customised and implemented by folks outside Google: so the shiny veneer of excellent Google engineering may fade over time. Bugs now aren't such a problem (though a large number will cast doubt on the promise of product excellence), bugs after a handset has launched are a different matter.
If I were Symbian, I'd be concerned: but if Symbian have an ounce of sense they'll already have been considering how an open-source handset OS will affect them - after all, Linux has been moving mobile-wards for years now, and Android is essentially a stack atop Linux.
So I'm a little lost; it's nice looking and I'm looking forward to seeing what our team can do with it, but the proof of the pudding will be in the 3rd or 4th Android devices launched: the ones which come out after the initial hype and don't have Google taking the reins of implementation.