Google tips Ice Cream Sandwich API changes

The news that Google is finally returning to an open source distribution model for Android 4.0 'Ice Cream Sandwich' has been welcomed, but details have emerged that may temper that initial enthusiasm with ridiculous system requirements and significant API changes.

According to details released by Google's Tim Bray late last week, Android 4.0 Ice Cream Sandwich might be open source - but changes to its application programming interfaces mean that developers are going to have some serious work ahead of them to ensure their apps work correctly when the Nexus Galaxy launches.

Bray warns that certain undocumented APIs in common use are due to change in ICS. "In almost every case, there’s only one reason for leaving APIs undocumented: we’re not sure that what we have now is the best solution, and we think we might have to improve it, and we’re not prepared to make those commitments to testing and preservation.

"The developers who use those APIs have to be prepared to deal with the situation that arises when we move them from the undocumented outside into the Android Application Framework," Bray adds. "There are a few such changes coming up in the Android 4.0 'Ice Cream Sandwich' (ICS) release of Android."

The biggest of these changes revolves around applications that access the Calendar functionality. "As of ICS, the Android Framework will include a fully-worked-out set of APIs for accessing Calendar data," Bray explains. "You can guess the bad news: Quite a few developers have built apps - including many good ones - using the undocumented Calendar APIs, some using fairly low-level access to the calendar database. Unfortunately, these integrations were unsupported, and prone to breakage by platform updates or OEM customization of calendar features.

"Once the new APIs arrive, you’re going to have to update your apps before they’ll run correctly on ICS while still working on older releases," Bray admits, pointing to techniques including 'lazy loading' and the use of the Market's support for the distribution of different package archives for different platforms to help developers get around that issue.

"We want to see lots of good calendar apps and extensions that work reliably across Android devices, and aren't broken by platform updates," Bray explains of the change. "So we decided to create a clean API, including a comprehensive set of Intents, to manage calendar data in ICS. Now anyone can code against these new APIs and know that Android is committed to supporting them, and that partners have to support these APIs as part of CTS."

The Ice Cream Sandwich release will also add a full text-to-speech API at the framework level, replacing the previous 'unofficial' C++ level API. "The old C++ API will no longer be supported, but we’ll have a compatibility layer that you can use to bridge from it to the new API. We think it should be easy to update for ICS with very little work," Bray claims.

While the changes will cause some heartache for application developers, there's bad news on the horizon for those who like to tweak the operating system itself: you'll likely need to upgrade your compilation box.

The openness of Android has led to the creation of multiple custom ROMs which add new features to the platform, bring updated versions to devices abandoned by their manufacturers, and in the case of HP's TouchPad port Android to a device never designed to run it in the first place.

System specifications suggested by TabletRoms make for awkward reading, however: to compile Ice Cream Sandwich will require a PC with 16GB of RAM - twice that needed for Gingerbread - and 80GB of disk space. For a dual-processor quad-core workstation running at 2GHz, developers can expect to wait around five hours for the operating system to compile.

The news that Android 4.0 'Ice Cream Sandwich' is open source - unlike its predecessor, Android 3.0 'Honeycomb' - is undeniably good, but its system requirements may mean that many casual hackers won't be able to join in the fun.