The mobile development media is all abuzz with news and speculation about Android’s highly anticipated next major release, code-named Ice Cream Sandwich. We’ve been bombarded with rumors for months, and we’ve seen a few unconfirmed leaks of devices running ICS. The whole Android development community is holding a collective breath and wondering: Will Android Ice Cream Sandwich live up to the hype?
Specifically, will it successfully combine the smartphone-centric features that made the Android platform so popular in the first place with the slick new features of Honeycomb that supported exciting new device form factors like tablets and televisions?
If you want our opinion (and we assume you must be a little interested if you’re reading this), here it is. Ice Cream Sandwich is likely to be a pretty major release, but nothing ever really lives up to the hype these days. We expect a first stab at a platform version that fully supports all conceivable Android devices equally for the foreseeable future. We are anticipating a platform version that will allow smartphones and other devices that have been hanging back on Froyo and Gingerbread a fairly straightforward opportunity to leapfrog Honeycomb and enjoy a stable and upgraded platform that is still backwards compatible. That’s just our take (and hope) on how this update will go.
Figure 1. Android Ice Cream Sandwich
The next big question is when Ice Cream Sandwich will be available. Back at Google IO in May, we heard “Q4, 2011.” A recent statement by Google’s Eric Schmidt refined this to the October/November timeframe. Some recent leaks imply we may see ICS sooner rather than later, but we’re betting that we will see the release by Christmas. We make this statement not due to lack of faith in the Android team, but because releases are sometimes held up at the last minute due to unforeseen circumstances.
That said, we are likely to see and hear more about what ICS will offer during the next few weeks. For example, some CTIA rumblings seemed promising, such as the recently postponed joint event that Google and Samsung announced, given the rumor that Samsung will be delivering the rumored Nexus Prime–the ICS launch device. Will it be a phone? A tablet? A suite of compatible devices in various form factors? Who knows! Many are hoping this event will showcase the Nexus Prime with some demos of ICS.
Developer’s Preparation Checklist for Android Ice Cream Sandwich
Regardless of the release date, app developers are getting antsy. They want the new SDK and they want it now. Development teams need time to update their existing applications for the hot, new devices that will inevitably ship soon after ICS is released (or, if past devices are any indication, before the SDK release). Luckily, there are a number of things developers can do now, even without knowing the details of ICS, to help speed this transition.
So let’s talk about how you can future-proof your applications so that they are ready for Android Ice Cream Sandwich and beyond. Here are some tips for prepping your existing apps as well as ramping up new projects in anticipation of ICS:
- Start by making sure your application runs as well on Honeycomb as possible. And by this, we mean that it should take advantage of Honeycomb features, not just run “well enough” due to backwards compatibility modes.
- Educate yourself about the newer features in Honeycomb, even though your application may not yet be using them. For example, learn how Action Bars work and how they are replacing the traditional options menu.
- Learn about compatibility modes, such as the feature in Android 3.2 Honeycomb that allows users to scale the display if the developer doesn’t set certain flags in the manifest file.
Identify areas of your applications that are most likely to cause problems after a platform upgrade:
- Identify and eliminate any platform-specific hacks in your old code, when possible.
- Seriously consider updating any outdated or deprecated code in your existing apps. For example, you may want to revise usage of the old Contacts content provider and use ContactsContract instead.
- Review all uses of undocumented or unsupported APIs, content providers, and so on, and eliminate them if possible.
Pay close attention to the trending best practices in the Android SDK, as they may have changed since you first wrote your application.
- We’ve been spotting various changes along these lines, but it’s sometimes hard to figure out if the change is just a new way of doing the same thing, or if it’s a better way.
Review the major new features that have been incorporated into Gingerbread and Honeycomb, especially those that the Android team has taken steps to back-port as far back as Android 1.6 through the Android Compatibility Package:
- Decouple user interface functionality from your Activity classes. Fragments are the future in terms of flexible user interface screen workflows that suit the full range of devices. This also applies to how dialogs are created (see the DialogFragment class for details).
- Review your Cursor management. Legacy apps may have Activity classes that manage Cursors. Consider switching to using loaders.
- Newer Android devices, in particular Honeycomb tablets, are free of the traditional hardware buttons (Home, Menu, Search, and Back). Instead, they rely upon software buttons (Home, App Switcher, and Back) and the Action Bar (Menu items and the contextual Back/Up button). These navigational changes may affect how your application behaves.
- Revise your Android Manifest files to use all the latest tags appropriately so that your application ends up in the hands of the users you want to reach. In particular, pay attention to the filters used by Android Market.
Developer’s Project Management Checklist for Android Ice Cream Sandwich
Here are a few more tips from a project management perspective:
- Budget time for developers to review the SDK when it is released.
- Budget to buy new hardware once ICS devices like the rumored Nexus Prime hit the market.
- Have testers ready to immediately review how your existing applications perform on the ICS platform, and developers ready to address any issues.
- Recall that the Android Market recently added support for multiple APKs for a given application. For some projects, this may be the ideal time to branch your code to support your legacy application (as-is) and begin to develop a new version that fully takes advantage of everything Android has to offer for the future.
- A reasonable place to split would be Honeycomb. Although the compatibility library exists and can be used on much earlier versions, it doesn’t contain everything. Your old application can continue to use the library while your new version may not need to, while being able to take advantage of all, or most of, the new features of Honeycomb and ICS.
- Finally, take heart in the fact that operators and carriers usually hold off on rolling out new platform upgrades to consumers until weeks or months after the platform is released to developers. So, you have some time to iron out the kinks in your applications.
Android Ice Cream Sandwich will be here before we know it. And as soon as it arrives, we’ll be clamoring for the next release. Developers have the opportunity to use this time before the release wisely, to prepare their existing applications and begin developing new applications. Project teams can begin to prepare for the impending release, so they are not caught unawares. We look forward to hearing your take on ICS when it appears, and encourage you to share your speculations in the comments!
About the Authors
|Shane Conder and Lauren Darcey — Contributing Editors, Mobile Development — have coauthored two books on Android development: an in-depth programming book entitled Android Wireless Application Development (ISBN-13: 978-0-321-62709-4) and Sams Teach Yourself Android Application Development in 24 Hours (ISBN-13: 978-0-321-67335-0). When not writing, they spend their time developing mobile software at their company and providing consulting services.|