A day with Android
Those who know me know that I am a real Apple fan, and not the sort who discovered Apple with the iPod or iPhone. I discovered Apple with the [Apple ]nex, fell in love with the Macintosh, followed Steve to NeXT where I learned Unix and NExTSTEP, and was blown away when these worlds merged into the renewed Apple and Cocoa/xCode. I am an Apple fan, and a real fan of the discipline and taste Steve Jobs brings to the company.
So it is odd that at this point I am the only person in my little family without an iPhone. Mary bought an iPhone two years ago, and has loved it. This summer she upgraded to the iPhone 4, gave her old 3G to Nathaniel, and Alex bought another iPhone 4 for college. Me? I’ve got a Motorola F3, practically no phone at all! I’ve resisted the iPhone for a lot of reasons, mostly to do with monthly costs that just don’t feel justifiable to me when I spend most of my days at home basking in the glow of WiFi. My reasons also include a deep discomfort of the way Apple is running the app store, even though I love the iPhone SDK and development environment.
This year my brother got a free Nexus One at the TED conference. Although I put in my plug for it the very day he got it, I only finally got it in the mail. It seems his daughter wanted to give it a go, and brothers just can’t compete with daughters, which is as it should be! Now I have an Android phone, I slipped my SIM out of the Motorola and have been using it for a day.
The Nexus One is a beautiful machine. Not quite as beautiful as any iteration of the iPhone, but very very close. It feels good in the hand, it has a wonderful screen (until you compare it to the Retina Display of the latest iPhone), and with the Android 2.2 operating system that came out just this week, it is as peppy and responsive as any device I’ve used. Google has done a wonderful job polishing the device and the OS to work really well together. If the iPhone didn’t exist, this phone would be outstanding!
There are a number of things Android does better than the iOS operating system in the iPhone. Multitasking is much more full-fledged than even in the new iOS4, enabling all kinds of nifty features. Widgets were a revelation to me, allowing me to place essentially larger versions of app icons on my phone desktop which contain live-updating information like the next calendar entry, current weather, latest headline, or most recent tweet. This makes the Android phone useful at a glance, where the iPhone is only useful after a tap on some app or other. Android also handles notifications much more gracefully than iOS. The status bar at the top of an Android device is a live notification zone that flashes brief messages and can be pulled down like a windowshade to reveal details about past notices. I can’t tell you how often I wished that the status bar on my iPad or Mary’s iPhone was “alive” to reveal more information, the Android windowshade is brilliant.
Android’s deeper implementation of multitasking also provides the user with a very different navigation model than the iPhone.
Most iPhone apps allow you to, essentially, move back and forth through a tree of information, like a hierarchical menu structure. As you leave one app and launch another, you enter a new tree. Depending on the app, when you return it may put you back on the same branch of the tree, or it may just plop you down on the trunk again. Multitasking on iOS allows you to decide when you want to jump from one tree to another more spontaneously, and makes it easier for the developer to make sure you land on the same branch when you return, but the trees still feel very independent of one another.
It took me some getting used to, but Android is a whole different beast. In Android, the apps are not really trees, they interact, intermingle, and the navigation moves seamlessly from one app to the next. I think this is why Android has a dedicated “back” button, so you can always go back to the last thing you were looking at. If an Android app brings up a web page, a simple click on that back button returns you to the original app and the very view you were looking at. You can, in fact, retrace all your steps right back to the home page this way. The experience is much more fluid than in iOS. I find myself forgetting the boundaries between apps altogether, the device become one whole organism more than the collection of apps I feel on the iPad or iPhone.
I am surprised to find that I am a big fan of Android! But it has some equally deep flaws. Flaws that may be showstoppers for me, and certainly may cause problems for real world users.
The Nexus One was commissioned by Google and built by HTC. These are two companies that know Android inside out and have a lot of experience building what David Pogue likes to refer to as “app phones.” And yet the N1 has wretched battery life. Left fully charged on my night table it was at 36% charge the next morning. An iPhone on the neighboring night stand still showed 100% charge in the morning. I have not been able to get through a whole day of normal use (for me anyway) without running down the battery. I’ve had it for a little less than two days and have already had to charge it three times. And it charges very slowly (at least with the USB cable). This poor battery life is probably closely related to the fabulous multitasking I so enjoyed. That takes power. Apple has constrained iOS in ways that feel draconian to developers and dysfunctional to some users, but these measures are aimed at conserving energy. And it works. Apple also makes much more radical hardware decisions, such as using a non-standard battery that virtually oozes into all the free space of the iPhone to give it as much power storage capacity as possible. Some reviewers count this as a negative, but I see the resulting longevity of the device as a big positive for real world users. The battery life itself almost makes the Nexus One a loser (and you will find many Android phones suffer from the same problem, read the reviews before you buy!).
While I love the freedom and fluidity of the Android OS, I am also a longtime avid computer user with a high tolerance for complexity. I like all the options I have in Android. I can follow the subtle flow from one app domain to the next, I notice the relationships between the widgets and the apps. But I imagine to many real world users this stuff will feel like magic. Some good, some quite dark. What app do you blame when something goes wrong? Why is the phone suddenly so slow? Why does the phone ring, but the screen present no way to answer the call? Where is that setting I was looking for? Android feels like it is aimed at a tech-savvy user, much like Linux. Most of the people I know will feel much more masterful using an iOS device. And being the master of your technology is an important factor in being comfortable with it.
Finally, I hate to say it, but the Android “Market” is no “App Store.” I thought the App Store had poor navigation and search until I met Market. It is not horrible, it does the trick, but it brings no joy to the experience of finding an app. And many key apps (Skype anyone?) are missing altogether. The technology press seems to believe that this will change, that many developers are going to jump on the Android bandwagon. I’m not so sure. For one thing, they are underestimating the seductive power of xCode, Cocoa, and the iOS framework. These are all tools that are over 15 years old! They started at NeXT and have been polished to a stunning glow at Apple. Developers who now experience the Apple way are, I believe, going to find it very hard to pull away. And porting to Android is no trivial feat. It is a whole different and less forgiving development toolkit (Eclipse), with a tougher programming language (Java), and much younger toolkit (GWT). The differences in the underlying navigation paradigms I discuss above also mean that many apps have to rethink at least a few basic assumptions before they are reborn. This is not super difficult, but it is also not trivial. I think it will take a few years for Android to attract these developers, and a few years more in Apple’s hands is a pretty big iOS advantage.
That said, this is also where Apple is by far the most vulnerable. As seductive as coding for iOS can be, the endpoint is only one place: the App Store. In my view Apple has been very abusive of its oversight of the App Store. Developers are starting to get very upset and quite verbal about their displeasure. If Apple does not significantly alter its ways in the next year or two, all bets are off. They could very well lose to Android as it improves and developers are pushed out by Apple itself.
I’ll be giving Android development a whirl. I have a trivial app of my own that Apple rejected. I’ll see what it takes to make it an Android app, maybe I’ll find the tools much more of a pleasure than I imagine.
Meanwhile, my bottom line is that I really like the Nexus One and Android 2.2. It is a wonderful device. I just wish it could keep its eyes open for at least a whole day at a time!