As a developer of mobile applications, I get asked a lot what phone should folks buy? To me, there are currently five possible choices (in my order of recommendation):
- Apple iPhone
- Google (HTC) Nexus One
- RIM Blackberry
- Motorola Droid
- Palm Pre
Executive summary: I think iPhone has a very slight (and narrowing) lead on Nexus One. I give iPhone the edge mainly because of the selection of applications available for it. Nexus One is hot on Apple's heals, and I believe a year from now they might be my choice. As such, I recommend to folks building mobile applications that they build for both iPhone and Android today.
Apple iPhone
I've been using an iPhone since they first came out. It has been my primary cell phone, and I absolutely love it. My current device is an iPhone 3GS. It is intuitive, fast, fun to use, and "there's an app for that" (about 130,000 apps today). Definitely the best mobile device I've ever used -- and a real game changer in the mobile computing world. To me, this is still the champ.
I do have four complaints with iPhone:
- AT&T's network is slow and sporadic.
- The onscreen keyboard isn't great (compared to a Blackberry's physical keyboard).
- Apple is draconian about what they will allow an application to do, making it not capable or doing things some of the other phones can.
- Battery life is poor (though it's poor for all smart phones right now).
Motorola Droid
When Motorola shipped the Droid, I thought it might win me over with the Verizon network, the physical keyboard, and the ability for applications to do anything they want. It didn't.
Verizon's network is definitely better than AT&T's. I could see where this alone could convert folks from iPhone. We'll see whether AT&T's $2 billion network upgrade gets them closer to Verizon, but today they aren't even in the same league.
But, the physical keyboard has really underwhelmed me. Moto just did a bad job with the keyboard's ergonomics: it's hard for me to hit the keys along the top of the keyboard -- my fingers bounce off the display making me miss the key I'm trying to type and hit the key below it; and the keys are jammed together (or maybe not beveled enough?) -- making touch typing just not feel right. I ended up exclusively using the onscreen keyboard -- the physical keyboard did nothing but make the device larger and heavier.
Battery life is also poor -- perhaps even worse than iPhone's. Lastly, the usability of using the Droid is just inferior to the iPhone. I think this is largely due to the Android Operating System needing a lot faster processor and RAM than the iPhone OS -- more on this below.
Bottom line -- I won't be switching my primary phone from an iPhone to a Moto Droid.
Google (HTC) Nexus One
A few weeks ago I got my hands on Google's new Nexus One phone (built by HTC). I've been using it as
my primary phone to see how it stacks up against the iPhone. Here I'm very close to giving up my iPhone -- it's a toss-up.
The positives:
- The display is just beautiful -- it's way brighter and higher resolution than the iPhone (though I think it's harder to read in bright light).
- The camera is superior. 5 megapixels versus 3. Has a flash. Has zoom capability.
- It allows background processing (see the OS section below).
- You can buy it unlocked and run it on whoever's network you want (GSM).
The negatives:
- the user interface is clunky, like on the Droid. Though it seems less of a poor experience than on Droid (this could be due to a faster processor or the new v2.1 of the Android OS which isn't yet on the Droid).
- no good built in integration with my media library (I'm not a huge fan of iTunes, but at least it works well with iPhone). There are some apps in the marketplace now that supposedly address this, though I haven't had the opportunity to try them out.
- Not as many apps as iPhone. There are about 10x as many apps on iPhone today.
So, what's stopping me from switching? Mainly it's due to there being more apps on iPhone, but the fit & finish of the operating system also plays a part -- more on the OS below.
RIM Blackberry
I haven't been using a Blackberry on a daily basis now for a few years, so my hands-on experience is a bit dated. To me, Blackberry is still the clear winner in the corporate email space, and the clear loser everywhere else. So, if all you want is a cell phone and a great device for doing email, Blackberry is for you. If you want a more full featured device, Blackberry just doesn't cut it.
Palm Pre
I haven't played enough with the Pre to have an opinion. They look nice, but so far have largely belly-flopped in the market. There doesn't seem to be very many apps available for Pre, and its sales have not met Palm's pre-launch hype. Anyone who uses one on a day to day basis, do chime in with your thoughts.
Android OS versus iPhone OS
This is the battle to watch in the mobile space over the coming 18 months. My belief is that 18 months from now, there will be more devices running Android than iPhone -- with Android taking the higher volume business, and Apple doing less volume, but retaining the higher end, higher margin business.
There are some big upsides for Android OS: I love that apps can run in the background (even if that does decrease battery life). This just opens up a lot of features you just cannot get on the iPhone. For example, my news reader downloads my RSS feeds in the background, so when I launch it, I don't have to wait for it to download all the new stories -- they are just there.
As a developer, I also like that Google doesn't get in the way of apps doing whatever they want on the device -- there is no draconian app approval process like on iPhone (the downside here being that apps on Android lack the professional feel of apps on iPhone).
Android OS is open source. As a developer, this again is a huge plus -- I can look and see exactly how everything works under the hood. In the end, these last two points I believe will win the hearts and minds of developers. Eroding Apple's big advantage in having the app lead.
Android uses Java for its development. Apple use Objective-C. There are a ton more Java developers in the world today, Java's easier to program, and there are a lot more third party libraries and software in the Java world than the Objective-C world. The downside with Java is that it's just not as fast on a CPU and memory taxed device like a mobile phone.
The biggest negative so far to me with Android OS is that it just doesn't have the fit & finish that iPhone OS has. Things just don't work as smoothly as they should -- for example if you want to scroll up or down through a list of contacts -- it's a smooth, satisfying experience on iPhone -- you can fling the list upward then pop your finger down on it and stop it where you want it and move your finger up and down slowly to control the list; but, on Android, the motion is jerky, and sometimes it just simply does the wrong thing -- it thinks you clicked on something you didn't -- or doesn't scroll when it should -- or won't stop when you want it to.
In the end, I think the plusses and minuses for Android OS versus iPhone OS cancel each other out today. In the long haul, I believe Android is going to be the winner as the microprocessors get faster in these mobile devices, the memory footprint gets bigger, and application developers are unleashed to be as creative as they want with a full understanding of what's under the hood.