First up, in case you didn’t know, I have an iPhone. I’ve been using “smartphones” for many years, the first having been a P910i, then a P990i, both of which I kept using for more than 2 years. They weren’t bad, but the iPhone in my pocket makes them seem pretty slow and primitive, especially with regard to user interface elegance. I spent 7 years in mobile phone software testing (mainly in depth protocol stuff but I did a lot of UI testing as well).
I’ve had a fiddle with an android device and I thought it was pretty good: it was a G1, pre-recent Android 2.1 update (I think that’s what is gradually being rolled out). Smooth, slick, nice interface.
I’ve read a few things recently though, which make me think Android could have a problem…
I think there are several things about android which may result in a gradual slide away from it, and they stem from thinking about Android as a platform for “app” developers rather than as a nice open-sourced attractive operating system with good user interface characteristics.
- Different hardware vendors produce different devices with different hardware platforms. Primarily, the issue here is screen size. If, as an app developer, you have to code for several devices with different screen sizes, it’s analogous to the awful situation web developers find themselves in trying to cope with rendering and processing differences between IE, Firefox, Safari, Opera… etc. Over time, app developers will grow tired of either having to compensate for small screens and rejigging their application interface to take advantage of larger ones, or only having their app run on one screen size and limiting their audience (and therefore their revenue – nobody’s going to keep doing this for free and produce good content).
- Different Android handsets are on different software versions with different capabilities. Although there are a variety of methods of updating android firmware (including rather nifty over-the-air) the updates are by no means guaranteed to go out to EVERY android device – some will be on the end of a cable; some will be over the air; this proliferation of different Android versions across the handset population is corrosive to coordinated application development.
- There’s the issue of no “central point” of Android OS software development as well: Google ain’t providing the firmware for HTC devices, Google are only looking after the overall state of Android, in the same way as Mandrake aren’t going to fix Linux issues in Ubuntu – but if core problems occur, they will find their way back into core Android eventually, but will they percolate out quickly? Another reason why an app might need to be tied to older versions of the OS to keep itself available to as many punters as possible.
There’s a spat going on between
Some of this can be overcome using clever coding, and I’ve little doubt a second-tier industry will spring up to create tools to try to design UIs for a range of androids, with a range of OS versions, but it’ll still be compromising at every turn and that means the apps will miss compelling features.
Some of this is actually diplomatic – issues between companies who produce android hardware and networks. This is the really nasty one as large organisations are appalling at coordinating this kind of stuff.
But the overall picture, if it’s not reigned in damn quick, will see android descend into a pile of mush for developers – a great platform ruined by a lack of central control.
Most of the people who complain about the iPhone rant about the restrictive APIs, the lack of multi tasking, and the general feeling that it’s not “your” handset, that Apple retain control all the damn time. That’s why the iPhone keeps getting jailbroken, and there’s a community who have their own jailbroken apps store.
Good for them. But 99% of the population don’t give a shit if the iPhone is locked down, they just enjoy running apps on it, interacting with it and using it: it really isn’t an issue for them. The righteous indignation and anger of the Geek brigade is futile, even if it is justified. And in the current malware-obsessed criminal internet environment, we’re looking at moving towards always-connected mobile devices. Ask yourself, would you prefer a device with some locked-down aspects or an open-source OS with freedom for programmers? (well, Android is sort-of open source)
I decided I wanted a smartphone which wasn’t so “smart”. I’m a programmer during the day, I geek out building stuff from scratch… but I’m seeing that Apple’s approach has many benefits on many levels. Tied down APIs and a single point of delivery for OS updates and applications which is distinct and separate from the network I’m on are definite advantages if you want a popular, populist platform you can really code for and get to the widest possible audience.
Good luck Android, I think you’ll need it.