The Gingerbread Phone

As I mentioned earlier, I’ve been using a Nexus S as my only mobile phone recently. One of the key features of that phone is its operating system, Android. The reason that the Nexus S is particularly notable is that it’s not only the first phone shipping with the newest version of the Android OS, 2.3 (code-named Gingerbread), but it’s pure.

When I say “pure”, I’m referring to the fact that it is Android as Google develops it; there are no carrier crapware add-ons. No skinned UI, no shitty apps you can’t delete because of some deal the carrier made with another company and no features that stock Android provides but that the carrier cut because it wanted to sell you an inferior version of their own that they charge for. So, like the Nexus One before it, the Nexus S is the Android phone Google would ship if they made it themselves.

I used the original Droid back when it came out, which was a couple of major revisions behind the Nexus S in my hand now. What’s improved? Is it enough to get me to switch from the iPhone? I’m not making that decision yet, but let’s look at the good and the bad of the Android OS, as I see it today.

Android has gotten a bit of a facelift in the past year. It’s not as dramatic as I’d like, but I think that the look is pretty good. There are minor improvements, like an orange glow that appears at the top or bottom of a scrolling list when you go “too far”. Think of the elastic feeling of iOS devices when you go too far, and this is the equivalent. Android is still a bit abrupt in a few places like screen rotation, where the iPhone animates the transition, Android just pops into the new orientation.

Like an iPhone, one can arrange icons of apps in grids on many “home screens”, which you can access by swiping side-to-side to scroll among them. These home screens don’t have all your installed applications as they do on an iPhone, but have the apps you’ve chosen to place there; there’s another way to look at every app on the device, by tapping a grid-like icon at the bottom of the screen.

Apps aren’t the only things you can put on a home screen though. There are widgets, which are typically small info-at-a-glance applications which are always running and updating on the screen on which you place them. For instance, I have a Google search bar widget on my main screen and you can type and search from there without first launching an app. There are others too, such as weather and clock widgets. I like those two, but had a hard time finding anything else I found particularly useful.

You can put shortcuts on the home screens as well. Shortcuts are icons that provide one-touch access to almost anything: browser bookmarks; a link to a particular spot you navigate to frequently; a setting of the OS. Third-party apps can add to what kinds of shortcuts one can make. Foursquare allows you to create a shortcut to a venue once the app for that service is installed, for instance. Handy.

Another customization one can make is choosing a background. Standard backgrounds are simply images, although they have a pretty cool parallax effect to them. By that I mean that the background moves left and right as you move among the home screens, but at a slightly slower pace than do the other items that appear to be on top of it, creating an illusion of depth. While that’s a nice touch, there are also animated backgrounds, which I loathe. The stock background has lines of color moving, like Tron light cycles or something, behind your apps. They’re terribly gaudy, in my opinion.

Navigating the screens is fluid and responsive. I never feel like I’m waiting for the phone to respond to a request to scroll or react to a touch event. I’d say that the speed of navigation is mostly on par with the iPhone 3GS I’ve used for the past couple of years. It’s not all roses, though. There are some things that just feel hokey to me.

First up is the back button. While it’s sometimes useful to have a system-wide back button, it’s frequently not obvious what you’d be going back to when you press it. A good thing about it is when you use an app that opens another component to fulfill a function, say opening a browser to read a web link, Android does so with the same browser you get when you click the browser app from the home screen and not some custom, inconsistent browser-within-an-app that’s so common on iOS. When you tap the phone’s back button, you go back from that browser to the app where you left it. Likewise, you can go all the way back the way you came through the app to get there. So far, so good.

Sometimes, though, you can get pretty deep, having gone from RSS reader to a story, to a linked page and so on, and while you know that if you keep tapping back, you’ll go back the way you came, sometimes it’s easy to get lost and forget where “back” is. In iOS, the back arrow has some context associated with it, and that’s missing here. Confusingly, the back button is also used as a kind of cancel button in some cases. For instance, when you get a modal menu of some kind from an app or by pressing the menu button, the way to get out without making a selection is (sometimes) hitting the back button. While that makes some amount of sense, I frequently got a menu of some sort and had no idea how to get out of it. I figured it out, of course, but it wasn’t intuitive.

Some apps remember where you left off when you left them. In Gmail, if you leave the app while on a message–say to the home screen–and come back by relaunching Gmail, it’ll still be on that message. But hitting back doesn’t take you back to the home screen you just came from, but back up through the path you took to the message. That ends up being what you wanted most of the time, but it can still be confusing since sometimes you’re acting on a stack of what you recently did but other times on a stack of what you did farther in the past.

The menu button is a mess. It almost always brings up a contextual menu–that is, a menu that has items appropriate for what you’re currently doing. For instance, with an email message selected in Gmail, the contextual menu has items to change labels for that message, star it, mark it as unread, go to the inbox, mute the app’s notifications, and a cryptic “more” button. One problem is that some of those options are app-wide while others are specific to that message and still others are for navigation. If you want to do something in the interface of an app, it’s frequently not clear how to do something and since there’s no way most apps do things, all you can do is try stuff. My first guess is usually this menu button, but that’s not always the right guess. And since the menu is different for each app, it’s hard to say what it’ll look like. To pick a bit on email, there are two email apps by default–one for Gmail and one for other email–and the behavior of the menu button is different depending on which kind of email you’re reading.

Let’s look at some positives. One big one is that there’s a built-in ability to tether the phone to another device to share the phone’s data connection. Even better is the ability for Android to create a mobile wi-fi hotspot using its data connection, providing wireless data service to other devices you have. This works well, and it’s great to see it here, since it’s one of the features commonly removed by carriers, sometimes replaced with a crapware app of their own that you have to pay for.

Another strength, albeit not a new one, is the ability to replace any software component with another implementation. The phone dialer on my phone has been replaced with a component from Google Voice to automatically route calls through that service, but the interface is still the same as when routing through my carrier normally. The browser is replaceable, as are many other components, which is a big win for users who prefer to make different choices than Google about their phone’s behavior. This is, by far, one of the biggest wins in an open system like Android over something like iOS.

The notifications center is a big win but again, not new. Its performance is much better than on the Droid, though; I never seem to fail to “drag” the notification bar from the top or dismiss it as I did back then. The notifications can be a bit too granular for my taste at times, but this system is far superior to iOS’s stacking dialogs that are easily dismissed and lost. One last minor quibble with notifications is that the status bar at the top can be cluttered with icons representing different system-level information, and notifications can (and often do) add to that clutter.

Multitasking in Android is the real deal: apps are doing things in the background while you’re doing something else completely. The Facebook, Twitter and email apps, to name a few, were all keeping updated in the background so that when I used them, they had the latest data immediately. This is also a nice win over iOS. While I didn’t find the Nexus S battery life to be on par with the iPhone’s, the built-in batter meter, which shows you what is eating your battery and by how much, didn’t report those apps as being battery hungry. That’s been one reason cited by Apple as to why they went the path they did with regard to multitasking, and for my usage that rationale doesn’t seem to hold up.

Android’s Bluetooth implementation plays more nicely with my car systems that does iOS’s, in that I can successfully phone dial in addition to simply having the conversations route to the car speakers and mic. This isn’t a problem-free area, though. I am almost always listening to podcasts or music from the phone through the car’s speakers and when receiving a call while that audio is playing, I frequently encountered an issue where the audio didn’t completely mute, making it harder to have a conversation. I’d say this is one step forward and two back, since I’d rather have the audio behave correctly than have better voice dialing.

That’s enough about the core OS for today. Next time, let’s talk about apps. I still have a bit more to say about some important parts of Android itself, but I’ll make another post about those things.