Hello Android (and the Google Nexus-S)
I don't usually review hardware for DDJ, but this feels like a special case for two reasons. First, it's the buzzed-about phone of the moment, what with it being the successor to Google's "failed" (but awesome) Nexus One handset. And second, because it's my first exposure to Android after years of being an iPhone loyalist.
The new Nexus is the first phone to ship with Gingerbread (Android 2.3), and unlike so many other handset manufacturers, it ships with a vanilla version that doesn't have any manufacturer customizations or carrier bloatware. This is the way Android was meant to be experienced, and frankly was one of the reasons I held out for the Nexus-S instead of making the switch earlier. Gingerbread is snappy on the 1GHz Hummingbird processor and application performance is great thus far. I'm impressed.
The four-inch super AMOLED display is bright and crisp -- it's a Samsung Galaxy-S phone after all -- and the phone includes a 5 megapixel back-facing camera as well as a lower-resolution front-facing (640x480) camera for video chat. Neither of the cameras pack a ton of wow-factor but they do their job as expected. All the other standard fixins you expect are there too, as well as some other niceties that surprised me.
In particular, I love the ability to turn the phone into a wifi hotspot. It's an incredibly useful feature, and something I didn't know I was missing until I had it. Using T-Mobile's 3G network I can get speeds around 2Mbps at no extra cost (as long as I don't abuse it, presumably), which is pretty awesome for typical web browsing and email checking.
My biggest complains about the phone hardware are the enclosure and battery life. The plastic case is lightweight and feels somewhat cheap. I'm sure that the plastic was used in order to keep the phone as light as possible, but it's hard not to feel that it's fragile and will break easily. The battery life is a bigger problem, as I find myself having to charge the phone before the end of a day of heavy use. But maybe I've just been spoiled by the iPhone there. I also wish there was an "active notifications" light, like many other phones have, to outwardly indicate that there are messages or new notices waiting for me.
Moving on to the obligatory Apple comparison... I can't deny that the iOS user interface is miles ahead of Gingerbread. And I can't imagine that will change overnight, either. Apple has always been a company that delivers compelling end user experiences, and part of that is controlling the hardware specifications. In comparison, Android suffers from trying to overcome obstacles that Apple simply doesn't have to deal with -- a multitude of different screen sizes, resolutions, processor speeds, memory, and device capabilities.
Data entry on Android -- or at least on the Nexus-S -- is a bit clunkier than using the iPhone virtual keyboard. I've read that alternative keyboards such as Swype partially solve this problem, so I suppose I'll need to investigate. The updated voice-to-text feature works surprisingly well, but it'd still be frustrating for heavy use I suspect.
But mostly I miss my iPhone because I miss the attention to details. That said, I'm happy to be done with AT&T, I can put up with the less-consistently-beautiful UI, and I'm much more interested in development for Android than I was for the iPhone. This was actually a heavy consideration for me. It's partly because I prefer Java over Objective-C, and partly because of the politics involved with the Apple app store approval process. The Android Market may not be as well organized, but it's less encumbered by politics, and will doubtlessly get better with time.
From a purely developer-centric point of view I feel like Android is a more dev-friendly platform, but seemingly lacking in consistent user experience guidelines. It's likely that this will be less of a problem in the future, particularly as devices proliferate, but at the moment it's frustrating. Further guidance from the Android UI team (a work in progress) or from a few prolific mobile application developer shops would be nice, but I suspect it'll need to be a community-driven effort. Do Android developers not care as much about this as iPhone developers?
I should mention that I spent a week or two leading up to the phone purchase learning Android development. This "trial period" playing with the SDK and deploying apps on the emulator was a serious part of my evaluation. As someone who's been exclusively a web / service developer for the last 5 years, I can't say that jumping back into mobile development is easy, but it's evolved significantly since the last time I played around in the space (with J2ME). The recommended tool chain (via Eclipse) is still a bit on the rough side but the open nature of the tools also bodes well for rapid progress. It's an exciting space, and full of opportunity.
All in all I'm happy with the device, and with my jump to Android, and I'm looking forward to having an excuse to dig deeper into some mobile application development projects. It's always nice to start the new year off with a new phone and a new bag of developer tricks.