Google's much-anticipated tablet operating system, Android 3.0 Honeycomb, made its splash in late February with the launch of the Motorola Xoom. Few Honeycomb-optimized apps were available at launch, but no matter: The expectation was that they'd follow soon after. Why wouldn't they, given the ever-growing popularity of Android?
But instead of an explosion of Honeycomb apps, the fuse burned down to the powder keg...and then nothing happened. Four months later, we're still waiting: The number of Honeycomb-optimized apps remains in the low hundreds. By comparison, there are over 100,000 apps optimized for the iPad.
So, what gives? Is there something especially hard about optimizing an Android 2.x (Froyo, Gingerbread) app for Android 3.x (Honeycomb)? Are developers waiting for Ice Cream Sandwich (presumably, to be called Android 4.0), which will merge the tablet OS and phone OS into one? Is there just not enough demand? Are there problems with tablet app discovery in the Android Market? Is it just because Honeycomb is so new?
We delved into the mystery, reaching out to a number of prominent Android developers for the answers to these questions and more. In our quest for answers, we sought out primarily developers who have successful Android apps that are also available for the iPad, but don't yet have a Honeycomb version. And while we uncovered several significant reasons, virtually everyone agreed on the main underlying cause.
Design and redesign
Honeycomb is optimized for a large, horizontal display -- large, as in 8.9 inches or greater. (This is why you still don't see 7-inch Honeycomb tablets, though the expected Honeycomb 3.2 will fix that.) But with the larger display comes design challenges.
"It's much more a design problem than an SDK [software developer kit] problem," says Bill O'Donnell, the chief architect at Kayak Mobile. "Or rather, it's not a problem, it's just work. You want to use your design resources where they get the absolute biggest return possible." He noted that an app for a 10-inch screen is (or, at least, should be) a totally different experience from an app for a 3.5-inch screen. This is particularly true when an app is primarily focused on text, like Kayak's.
All Android 2.x apps will run on Android 3.x, but oftentimes the text just looks awkwardly small and clunky; this is because the Android SDK does not automatically scale fonts, so developers must create their own code to get their fonts to scale up or down within their apps, which can be extremely tricky. When graphics are involved, you must use higher-resolution graphics and program them to be scalable, so that when they are on a larger screen they won't become pixilated. However, this requires the size of your app to be larger, and it may put more of a strain on the device's processor. For Kayak, a major redesign would need to happen, which would take an investment of resources -- and they want to make sure it will pay off before they commit to that.
For other apps, adapting to a larger screen isn't so much of a problem. Many game developers have opted to use third-party development engines such as Unity. "Unity takes out a lot of the grunt work and lets us port our apps to many different devices and platforms," says Marc Andreoli of GameResort, which makes the very popular Stupid Zombies game, among others.
"We have to build our games in a way so that the graphics scale to different screen sizes, but Unity does the heavy lifting," Andreoli said. This is a tremendous boon for a small company (GameResort is just a two-man team) trying to do big things. Unity has enabled them to get essentially the same experience across Android 2.x, Android 3.x (Honeycomb), and iOS devices.
Tommy Forslund of Polarbit (Raging Thunder II and Reckless Racing, among others) agrees. "We don't have a specific Honeycomb version out for any of our apps -- largely because there isn't a need for one. We do have versions out which run full-screen in high resolution, but these work on any Android device, regardless of OS version."
The Polarbit developers use the Fuse engine (a third-party development platform similar to Unity) to accomplish this, which allows them to target many different operating systems and screen sizes at once.
Third-party development engines can handle all of the scaling for developers (as long as the visual assets used are of a high enough quality) across many different platforms. The developer needs to write an app only once, and the third-party development engine translates that app to run on many different platforms. Without these third-party engines, you would have to hire other teams of developers to accomplish that versatility, which many smaller companies can't afford.