Android's growth worries developers

A year after Google's Android launch, the open source operating system has become a sensation for both developers and consumers. With at least 12 devices currently using Android consumers have a range of mobile devices on which the platform operates and numerous devices on the horizon.

But it isn't all good news. Some developers have complained that developing for Android is a "nightmare" citing the problem currently facing Android developers according to CNN. Some of those concerns are the fact there are 3 versions of the operating system on current phones (Android 1.5, 1.6 and 2.0) as well as custom firmware for the various devices and the hardware differences between phones on which the system runs.

For users it could mean a difficult experience for the applications they are trying to use, causing headaches and frustrations. This headache could lead to users leaving negative feedback because they do not understand the complex code needed to develop application. The negative feedback by users could be a potentially lethal blow for small businesses developing applications to run on multiple Android handsets.

"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.

Fagan's concern about the development headaches of Android is shared by other developers, says Sean Galligan, vice president of business development at Flurry, a mobile application 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." 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."

"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" says Kelly Schrock, owner of Fognl, which has three applications on the Android market.

Only time will tell if the frustrations ease for application developer who choose the Android platform an whether Google will work with the development community to help ease their concerns.

Report a problem with article
Previous Story

Ballmer: Windows 7 sales are "fantastic"

Next Story

Death and Social Networking

52 Comments

Commenting is disabled on this article.

This is exactly what I said would happen when they first announced the Android Platform. To many different devices and as time moves forward the devices will move further and further apart until applications no longer run on each device without tweaking or rewrites.

Already we have HTC developing their own Widget engine for their Android devices based on their Sense UI and their Widget API is completely incompatible with all other Android phones and indeed the Google widget implementation. Any developer who chooses to use HTC's API (And they are actively recruiting developers) is locked in. And this is not unique to HTC lots of companies are making large changes to android or bundling their own software tools that make it fundamentally incompatible with the other devices.

Google need to realise that companies always want to differentiate themselves from the competition. You can't give everyone the same sandbox and expect them all to build the same sand castles.

Vice said,
Already we have HTC developing their own Widget engine for their Android devices based on their Sense UI and their Widget API is completely incompatible with all other Android phones a


Uhm, no the Hero ROM runs perfect on my My Touch3G.

ripgut said,
Uhm, no the Hero ROM runs perfect on my My Touch3G.

You have no idea what I am talking about. HTC's CEO just sat down with Engadget and said his Widget API is 100% not compatible with the one made by Google in Android. HTC's is a custom design based on Android but changed so much it is incompatible. Do you understand now?

And just to clarify once more we are talking about Widgets not ROM's

The real problem is many developers are not aware how to write configuration-independent code. Take Windows development - many programmers still use pixels when developing GDI-based programs, when it's obviously wrong, because the number of pixels is configuration-dependent. It is not very funny that many programmers don't know how to query device capabilities, and work from there. Many programmers don't pay attention to proper keyboard navigation and tab orders, instead concentrating only on mouse and/or "touch" inputs. Many programmers paint the window background white, instead of the system color "Background", or hardcode the font faces and sizes, instead of using the ones defined by the scheme. These are all nuances, but very important ones, if you care about accessibility and compatibility.

To develop for a general-purpose OS, like Linux/Windows, you need to understand that the product will run on millions of different devices, and has to be compliant with all the specs.

only microsoft and apple ever understood the importance of easy to use IDE's and emulators. Linux is so far behind on this aspect that it's not even funny

XerXis said,
only microsoft and apple ever understood the importance of easy to use IDE's and emulators. Linux is so far behind on this aspect that it's not even funny

What does this comment have to do with the article at all? We aren't talking about Linux, Microsoft, or Apple...

if you are a small or a new Android developer coming in and trying to learn I could see your head exploding.

Well, as a Develoepr you're either up for it or you're not. But don't ask for a pity party.

Agreed, but in a naive kind of way. The main problem is either that developers do not follow the best practices, or the underlying platform is not expressive enough to convey the information to make the best practices possible.

I don't know much about the Android, but Windows, including Windows CE/Mobile, is expressive enought to allow a wide range of applications working properly across many different hardware configurations. It is up to developers to build their products _properly_. If Android is similar to Windows in this regard, the blame lies squarely on developers.

Boo hoo, my heart bleeds. Having developed on a number of platforms targetting a wealth of different setups - I am laughing at this "story".

Too many mobile developers jumped onto this "quick and simple" bandwagon, and now they are facing the sort of trials that we all had to get used to - I feel no sympathy whatsoever.

users [...] do not understand the complex code needed to develop application

And neither should they. It's the job of the developer to code towards their supported platforms!

I agree. At least in the past 18 months developers have been given the option of centralised stores to sell products for most platforms. I imagine that removes a fair burden from developers who may have struggled to put apps into the publics eye previously.

This headache could lead to users leaving negative feedback because they do not understand the complex code needed to develop application.

Why should they understand? Or care?

They pay for it, it should work.

Yeah that bit confused me. The end user has no need to understand it just like I can say a painting is ugly even if I can't do better or a building is crap despite not being an engineer or architect. You really shouldn't have to fully understand something to pass an opinion on it.

Have you looked in the Android Marketplace? 90% of the 10,000 applications are free. My feelings are if your downloading a free application and someone has taken the time to build it then end users should cut them some slack. If you're paying for an application then they have every right to complain.

As a developer I know all to well about the frustrations of developing on Android. The different OS versions make a HUGE difference. Every time they change something in the sdk developers have to go back and update their applications. This might not sounds bad, but if your handing out free apps its awfully time consuming for something you aren't being compensated to do.

But developers should take the feedback from usersand improve on their apps.

Yeah I tend to agree as well CyberDragon777. We are all members of Neowin, a technology related site, so we know and care a hell of a lot more than most of the population when it comes to technology and gadgets.

My cousin (mother, father, aunt, friend) for the sake of this example, could care less and only wants to make sure if he spends some money on an app, that it works and that is it.

I do tend to agree if it is a free App then perhaps they should not bother leaving negative feedback as I look towards the old saying "you get what you pay for" but honestly I think even then people have the right to leave negative feedback if it is indeed valid. Again they do not care how it was made why it was made who it was made by etc. etc. etc., they just care if it works, and if it does not work for them, even if it was free, they have a right to share that fact.

Free just does not mean you are given an automatic pass and can release a POS software. If you put something out for public consumption then you must also accept public criticism as well. No other way I can see it.

As above, free software should be criticised too despite the lack of an associated cost. Failure to look critically at an app and give it a free ride will only hide the fact it's inferior to other similar apps which may have a cost associated with them.

Personally if I hear a free app isn't all that great I'll happily look for a commercial alternative.

What the hell? What about web developers... What about software developers for computers/servers... What about all the other mobile software types? Pretty sure they have to put up with the same bull, too.

These sounds like problems faced by all mobile platforms (and to an extent even desktop systems). Hardware differences has always been a problem as far as I'm aware on mobile devices given they are evolving quite quickly and new capabilities are being added all the time (how many people had hansets with GPS 2 years ago?). I sure faced it when I chose to develop for Symbian as part of my university thesis and had to go through the mess required to get the previous students code to work on the newer Symbian release.

If anything the iPhone has been somewhat of an exception since it sat on the same internal specs for quite some time but this is none the less become an issue there too with the advent of the GS.

Now I'm unsure if Google has to release so many major versions so quickly but in terms of actual hardware advances that's going to be an issue for any OS, especially one that can be licensed by third parties resulting in ever evolving and varied hardware.

Symbian had the same trouble a couple of years ago. They resolved unifying several version and being a lot more strict about the features that a cellphone can present.
For example, Symbian s60 v3 is very strict even in the screen resolution, disallowing to use in any screen resolution.

Complaining complaining and complaining.
If the developers find it troublesome, then dun program, no one's forcing. Whiners' who always want the easy way out....

I wouldn't be too worried. I think the rapid releases were mostly due to Android being a new OS. One could compare that API to Microsoft's .NET Framework 1.0 and 1.1 before the core API stabilized much better with 2.0. Besides, the amount of app releases for Android Market is still very rapid, even showing a expontential-like curve according to Androlib.

tripple wtf. Both are pretty good OS's. Both are installed on a range of devices with different hardware hence of course create compatibility issues. I guess Steve Jobs looks good with his locked-in policy.

Bill Gates accomplished this himself a long time ago. Do yourself a favor and read up on his accomplishments sometime.

Billus said,
tripple wtf. Both are pretty good OS's linux's skin. Both are installed on a range of devices with different hardware hence of course create compatibility issues. I guess Steve Jobs looks good with his locked-in policy.


It is one of the reason because linux, for developers, is annoying at best and Windows and OSX is quite nice.

greatscot said,

CONGRATULATIONS GOOGLE.

You managed to do something no-one else has achieved - make Bill Gates look good.

(n) wtf

It's exactly the same problem faced by ANYONE developing software for mobile phones (iPhone excluded). They all have different versions of the particular OS, different firmware, and different hardware. None of them seem to complain excessively about the situation, so why are Android developers any different?

FloatingFatMan said,
It's exactly the same problem faced by ANYONE developing software for mobile phones (iPhone excluded). They all have different versions of the particular OS, different firmware, and different hardware. None of them seem to complain excessively about the situation, so why are Android developers any different?

+1

FloatingFatMan said,
It's exactly the same problem faced by ANYONE developing software for mobile phones (iPhone excluded). They all have different versions of the particular OS, different firmware, and different hardware. None of them seem to complain excessively about the situation, so why are Android developers any different?


Actually, iPhone developers are having problems too; apps run at different speeds due to hardware changes. This is not a big deal, but can be a problem for games. (Oh and Apple didn't think about that before bumping up the iPhone's spec...)

FloatingFatMan said,
It's exactly the same problem faced by ANYONE developing software for mobile phones (iPhone excluded). They all have different versions of the particular OS, different firmware, and different hardware. None of them seem to complain excessively about the situation, so why are Android developers any different?

Actually, even the iPhone has it's issues. The first gen iPod Touch is notoriously slow compared to the original iPhone or iPhone 3G, despite it supposedly being the same hardware. And the 2nd gen iPod Touch is actually faster than the iPhone 3G. And then there's the new CPUs in the iPhone 3GS and 32/64GB 3rd gen iPod Touch, but NOT the "3rd gen"-relabeled 2nd gen 8GB iPod Touch.

Specifically for a game, one needs to test it out on multiple devices really because you can't just test on a 3GS or a 3rd gen iPod Touch. It's performance not every device has.

Ah yes, I'd forgotten that hardware change. Still, they don't have half the issues of differences that you get with Symbian or Windows Mobile devices... ESPECIALLY Symbian... That platform is a bloody nightmare to develop for!

The point still stands though. Other mobile device devs have had these problems for a long time, so what makes Android devs so special?

Some of those concerns are the fact there are 3 versions of the operating system on current phones (Android 1.5, 1.6 and 2.0)

I could be wrong but don't applications created for 1.5/1.6 work for 2.0 as well? 2.0 isn't a rewrite of the android code, it just adds a bunch of new features and bug fixes etc.
as well as custom firmware for the various devices

What's that gotta do with anything?
and the hardware differences between phones on which the system runs.

There isn't that much of a hardware difference yet. Plus if you want your application to run on all phones, design it for the older phones and it will just run faster on the newer ones. If you want to make use of the higher hardware on newer models, just make it known that this application will only run on certain phones.

If people can do that for windows, mac and linux, out of which there are countless different hardware and os combinations...why can't these people do it for phone OSes.

/- Razorfold said,
If people can do that for windows, mac and linux, out of which there are countless different hardware and os combinations...why can't these people do it for phone OSes.

I couldn't have said it better myself.

We are developing a commercial server -client app on windows platform, and also support blackberry,windows mobile...Though there are lot of hardwares and software version, we dont find ANY issue or bug in our software due to version difference (Vista, Windows 7, XP & couple of blackberry handsets)..
We are even making software in Android, but ..its really going in a snail movement & giving us headache in few changes that they provide..which in normal business prespective will lead customers to remove from the future roadmap list.

Jugalator said,
I couldn't have said it better myself.
It's simple really. Unlike your computer, a phone has a very small processor, and memory. A Good programmer will author their code as tightly as possible to the device it will be used on, as to not waste memory or processing power. An example could be made with torrent clients, uTorrent is under 1/2MB, and Vuze is ~7mb + JAVA.. Sure Vuze works on everything, but it's far from efficient.

My bet is these developers are doing the same, they are writing their code so on each device it leaves the smallest footprint it can.

Ryoken said,
It's simple really. Unlike your computer, a phone has a very small processor, and memory. A Good programmer will author their code as tightly as possible to the device it will be used on, as to not waste memory or processing power. An example could be made with torrent clients, uTorrent is under 1/2MB, and Vuze is ~7mb + JAVA.. Sure Vuze works on everything, but it's far from efficient.

My bet is these developers are doing the same, they are writing their code so on each device it leaves the smallest footprint it can.

That doesnt make much sense. The hardware in most cases is still virtually the same, and android uses java so for the most part, if your app leaves the smallest footprint on once device, it will do so on every device. Or shoudl be able to do so. It's a dalvik VM your app runs on, so you dont have to worry about the underlying hardware.

Jugalator said,
Welcome to the life of software engineers on (most) mobile phones, stationary computers, and laptops.

Nightmare!!!yes, it is. Android has just launched a year before and we cannot expect a lot of developers for android app. Its just a new product and it will have lot of issues. over a period of 2 or 3 years development and app will be mature..

still1 said,
Nightmare!!!yes, it is. Android has just launched a year before and we cannot expect a lot of developers for android app. Its just a new product and it will have lot of issues. over a period of 2 or 3 years development and app will be mature..

iPhone was new too. Can you remember?