Time to Taste the Android Donut

For the past year I’ve been watching Android mature — and waiting. After finishing the Android book earlier in the year I’ve done a little with it, but to be candid, most of my mobile development cycles have been spent focused on some other platforms — platforms that are shipping like iPhone and BlackBerry. Yes, I am probably guilty of lacking vision by not entering applications into the Developer Challenges. And perhaps I should have been laying the foundation for a future Android application which will take over the world when more devices appear on the market. And I’m guilty of countless other things, but unfortunately the tyranny of the urgent tends to still dominate my professional world. Things are going to change. Both for my time management focus and the Android horizon. I won’t bore you here and now with how things in my world are going to change, but I will give you some insight to what is happening in the Android space. Now before you get too excited, I don’t exactly have an inside track to the things happening at the Open Handset Alliance, nor do I have anyone at Google on my speed-dial. I don’t even have an updated piece of hardware — yet! I am just reading the touch-screen tea leaves and want to share a few observations.

The Android 1.6 SDK was released last week — this is the code branch named “Donut”. For a while it was thought that this might be version “2.0″, but alas, it was released as 1.6. This version of the Android code will be available on devices starting as early as October, if the rumors are to be believed. Sprint is introducing a device, the Hero from HTC and other devices are anticipated for this year’s Christmas season. Of particular note to mobile market watchers, Sprint now has two compelling attributes. With the addition of Android to their line-up, they have the broadest variety of smart-phone class devices including BlackBerry, Windows Mobile, Palm Pre, and Android. Sprint also has arguably the best service plan with their $99 all-you-can-eat voice, data and messaging plan which they call SimplyEverything. This is not meant to be a Sprint commercial, but for someone like myself who is constantly needing to get their hands on devices for writing and testing custom applications, these features did not go unnoticed. For the record, I am using AT&T. My wife received a hand-me-down 4GB iPhone after I burned through it in a couple of days two summers ago. I drained the battery to an unusable level each of the first two days I had it and just couldn’t cope with the fact that I couldn’t swap a new battery into it like I had done with my Palm Treo. So now I bounce around between an unlocked Android phone and a well-worn BlackBerry Curve. Whose network is best? Topic for another day. Let’s get back to Android and see what new features Donut brings us and what that might mean for Android watchers around the globe.

Major Features in 1.6

There are a number of new features in 1.6 — however, I am going to break them up into two main categories. You might classify them yourself another way, but the way I see it, they fall into two major thems. The first I’ll dub “Enabling New Markets” and the second category, “Cool Programmer Stuff”. Let’s look at each of these in turn.

To date, the Android platform has supported GSM wireless networks and a pretty static hardware set — or to be fair, more of a “build it for this device” approach. With 1.6 we now see that the Telephony capabilites have been expanded to also include CDMA networks. In North America, this means that Android can now play on networks such as Verizon, Sprint and Alltell, among others. I don’t mean to exclude anyone here of course, but those are some of the big names in the CDMA space. Verizon and Sprint have tremendous EV-DO (i.e. super fast 3G) data networks. And Verizon has oodles of subscribers so supporting CDMA is a big boost for Android from a “grab some marketshare” perspective in the United States.

The other area in which this new release of Android plays into new markets is that multiple screen dimension and depths are now supported. This means that if the computing power is there to support Android, we can expect to see it running on a variety of hardware profiles. This could mean a larger (aka brick-like) device like the G1 or more sleek handsets closer to the razor or other higher-function feature phones. I’ve been reprimanded before on expecting too much from lower end hardware, but I’m patient. The key lesson here is that these different devices can and will have different display characteristics. Now applications can work with multiple layouts by interrogating the display properties at run-time and taking the appropriate action. The action might mean changing the layout to a lower-res game scene, running in a higher resolution, or perhaps just refusing to run at all unless the minimum requirements are met. It is arguably better to not permit your application to run than have a knowingly poor user experience. If you are interested in learning more about this specific API, you can read about DisplayMetrics at the Android Developer website.

So as of Android 1.6, Android can now play on both GSM and CDMA networks and on a range of device display characteristics. Now we’re talking! Android is a significant step closer to prime-time and coming to a market near you. So let’s have a look at what other goodies are included in 1.6.

Cool Stuff

Android has added some neat stuff to the SDK — some things that bring Android closer to both the desktop and the defacto mobile leader — the popular iPhone. Close the desktop? Have I lost my mind? Perhaps, but check this out — Android 1.6 has expanded the Quick Search Browser (QSB) capabilities that has been around since 1.1. I am sure you have started typing a search phrase into your desktop browser and you see the “suggested” phrases show up? If you’re like me, you might even start typing just to see what you should search on prior to hitting “Go” on the search form. In 1.6, Android continues to improve this functionality. One of my concerns with Android versus other platforms such as Palm’s webOS and iPhone is that while Android may be a beefier, flexible and capable OS, the user experience can be a bit Windows Mobile-ish. Before you start throwing old stylii at me, let me explain. Android can be a little “click and clack” intensive compared to the user interface of iPhone and webOS. However, with an increasingly effective search tool built in to the home-screen, not only does the web become more accessible, but data on the device is very accessible.

In case you are not familiar with QSB, here is how it works. Android is constantly monitoring what the user is doing. If a website was visited, a contact was touched, or an application was launched, this data pattern is “learned” and becomes more relevant in search results. Additionally, third party applications can also expose a ContentProvider whereby the application’s data can be searched by the QSB. This brings a whole new level of user experience to a mobile device. Ready for a little confession? The QSB can also be a poor-man’s dictionary, right? Have you ever typed a word into Google’s search box just to see if you spelled it correctly? OK, so I’m the only one. So this is just the long winded way to say that 1.6 improves the Quick Search Browser functionality — most notably the search suggestions capabilities. See the SearchManager reference for more details.

The other comment I made — that Android may be moving closer to iPhone-like functionality comes in the form of a user interface package which has been added in 1.6 called: android.gesture. Developers can record, store, retrieve and generally speaking, manage gestures. Gestures are essentially a collection of screen interactions — “strokes” or collections of MotionEvents. After reviewing the API (and not actually using it yet….), I get the feeling that this is more of a tool-kit than a simple iPhone-like “TouchEvent” that gets sent to your application. While Android developers would not be blamed for wanting more in this area, it is an incrementally encouraging step in the right direction. It also may allow some interesting “art” or enable new unique password & keygen capabilities for applications?

So, just what does all of this mean for Android and for competing platforms? From my vantage point, this is a significant milestone — one that the other platforms should be mindful of — particularly in the area of new market potential that CDMA capabilities bring to Android. The other features are excellent and will only turn up the heat for competitors. Slowly but surely the temperature is rising and with it, the stock of Android.