(Wired) -- A year after its release, Google's open source Android operating system has become a sensation.
After a slow start, it is now available on at least 12 phones, with more devices waiting in the wings.
Good news for Android fans, right? Not really, say some developers.
A slew of problems have made managing Android apps a "nightmare," they say, including three versions of the OS (Android 1.5, 1.6 and 2.0), custom firmware on many phones, and hardware differences between different models.
For users, it means apps in the store could be buggy, might not work well depending on their handsets, and could deliver a frustrating experience.
Unaware of the increasing back-end complexity, they would then be more likely to leave bad reviews for those apps -- a potentially lethal blow for small businesses, say developers.
"Instead of working on updates to our apps, we find we are trying to make each app work for multiple versions of the OS and different hardware capabilities," says Chris Fagan, co-founder at Froogloid, an Android-focused application development company. "We are not complaining about all the growth, but if you are a small or a new Android developer coming in and trying to learn I could see your head exploding. It would be overwhelming," he says.
The problem echoes similar concerns over Java in the 1990s. Originally touted as a way for developers to build apps that would run on any computer ("write once, run anywhere"), developers found that wide variations in Java virtual machines as well as available hardware meant that Java's promise was really "write once, debug everywhere."
While Java is still used -- particularly in the mobile space, where it powers games and other apps written for Java-capable cellphones -- it is not nearly the cross-platform panacea it was originally conceived as.
Fagan's concern about the fragmentation of Android is being echoed by other developers, says Sean Galligan, vice president of business development at Flurry, an mobile app analytics company.
"There's no question that we are starting to hear developers express concern," says Galligan. "Android is growing very fast and there's a lot of excitement for it but it's also a lot for work, especially for medium and small developers."
Since the launch of the first HTC T-Mobile G1 phone running Android OS, a number of handset makers have jumped on the bandwagon. HTC alone has five Android handsets available, while others like Motorola have shifted completely to the Android platform.
In the past two months, Motorola released two new Android-based handsets, the Cliq and Droid. And in a bid to differentiate themselves, handset makers are creating custom user interfaces like the HTC Sense, the Motorola Blur and the Rachael UI from Sony Ericsson.
Android phones vary significantly in the hardware, too -- phones with and without camera flash, some have physical keyboards, others don't.
"You may build an app that works perfectly with all three firmwares, but then when you run it on carriers' ROMs it completely blows up," says Fagan. "So we find ourselves having to create apps that are compatible with multiple firmwares, multiple ROMs and multiple devices with different hardware."
It's in sharp contrast to the iPhone platform.
Apple has tightly controlled the introduction of new iPhones and updates to its operating system. It has just three iPhone models available since it first introduced the phone in 2007. And all iPhone users are prompted to update their phones to be on the same version of the operating system.
While Apple pioneered the app store idea with the iPhone, Android, too, offers Market, a store for distribution of third-party programs. Unlike with the Apple app store, Android developers do not have to go through an approval process to get their apps on the Android Market.
Currently, the Android market has about 10,000 apps compared to the 100,000 in Apple's app store.
For developers, Apple's autocratic ways may be frustrating, but they can pay off.
"Apple maintains an iron grip on what they do and there's an advantage to that," says Kelly Schrock, owner of Fognl, which has three apps on the Android market. "IPhone developers don't have to worry about fragmentation and creating apps for the iPhone is much easier."
Founded about the same time as the first Android phone hit the market, Froogloid today has more than 100,000 users across its three apps: a2b, Key Ring and CowPotato. But with Android's growth, managing these apps is becoming quite a challenge, says Fagan.
The diversity of devices running Android OS has led to some unexpected results, says Fagan.
For instance, the Sprint HTC Hero was launched without its GPS setting turned on. When run, the a2b application could trigger it -- but Froogloid soon found that the standard commands they used reacted differently on the Hero than on other Android devices.
Instead of launching the GPS settings, it set off the "screen unlock pattern" settings, says Chris Pick, requiring Froogloid to write custom code in their app for that particular device.
Google says it has emulators available that allows developers to test their application running on simulated devices so they can see how it behaves.
But it doesn't always work, says Fagan. "In a sense, we are shooting blind with the emulators because we have no idea how it is really working on the device."
For instance, explains Pick, the graphics for their 3D game app, Cowpotato worked fine on the emulator but crashed when run on Motorola's Droid phone. Pick suspects a bug in the graphics driver on the Droid. Writing for a fix for it took care of the problem but its not the best solution, he says.
"When we have to start writing rules based on the phone model in our code, it adds more code to our code base, creates more work for us and makes the app heavier," says Pick.
Different versions of the OS also means new functionality is added or some removed. Understanding these changes and making software backward compatible takes time, say Schrock. "It's a multiplication of work to support all of them."
A bigger problem is the customization of firmware or custom ROMs.
For instance, Google offers a basic homescreen with the Android code. But device manufacturers or network carriers can always modify it.
Sometimes the changes are simple, such as replacing all white color with grey, or red with yellow. That allows handset makers and carriers to tailor Android better for their customers, something that Google says it supports "strongly."
"That isn't a big deal," says Fagan. "However, when they start changing fundamentally how certain activities are controlled, such as user settings and screen orientation, it creates issues for developers that have built their apps on an out of the box version of the firmware/SDK."
Custom ROMs are always available for developers to look through, points out Froogloid.
"Google has mandated that every one base their releases on the standard versions," says Pick."But this slips under the radar."
Ultimately, developers will have to start making tough decisions on who they want to target and versions of the operating system they want to support, says Galligan.
"Developers have to identify which devices and carriers appeal to the market they are creating an app for and develop just for it," he says.
A one-man band, Schrock says without any employees he can't maintain four different app versions.
"It's getting a lot riskier on the Android. It's not 4x increase in the cost but it will be a lot more work."
And while Schrock says the apps are not his meal ticket, he doesn't want to make choices that could cut off some Android users from his apps.
"I will have to decide then how much return I am getting and if it is worth it."
Subscribe to WIRED magazine for less than $1 an issue and get a FREE GIFT! Click here!
Copyright 2011 Wired.com.