Tuesday, 18 December 2012

Why is Android still crap?

The BBC posted about their attitude to Android today causing some discussion among the mobile developer community.

Android has come a long way and the latest version of the OS and some of the devices coming out are really cool, but the market is heavily fragmented and fragmentation is still a real problem.  And it's not just screen-sizes and resolutions, we learnt how to handle that 10 years ago.

Firstly, there is a great deal of difference between the range of APIs available (with 2.3 still being the most popular and only about 33% of devices supporting 3+).  There is "support" available to bring some of those APIs to the old APIs, but it means developers retrofitting their apps with the support library (assuming they didn't using it from the beginning) and it still doesn't grant access to all the cool features of 4.0+.  Yep, you can target various APIs directly, but adding "if API > 4.0" type statements to code and having to create "layout-v16" specific XML files is frankly fugly.

Next, providers and manufacturers are able to took about with Android as much as they want, so who knows how much they've gimped it and therefore what effect that'll have on your app.

Finally is that there are real differences between the hardware.  I have direct experience of different devices handling various situations differently (usually memory, as reported by BugSense).  The emulator works fine but "stock Android" on an offending device demonstrates the problem, where as other devices of similar spec are fine.  I shan't mention names *cough*Samsung*cough*Sony*.

If I'm still not getting through to you, consider the possible number of permutations.   Try plugging in some numbers for Android and then iOS.  You'll see what I mean.

Fragmentation degree = Screen sizes * screen densities * API variation * hardware variation * provider/manufacturer OS tweak variation.

So the conclusion from someone who does commercial Android dev on a regular basis is that Android dev is a PITA and iOS is significantly easier.  For me, that explains why iOS stuff tends to get done first as it'll reach a user base of people who generally are prepare to throw more money at stuff than Android users and with a lot less development pain.


telcan said...

PBX is ideal for small business and entrepreneurs. It gives a professional image and make sure that you don't miss a single call. Few months back, I decided to buy PBX from Telcan. You can get more information here: PBX

Anonymous said...

I like this post. I was trying to get my head around the scale of fragmentation on Android, and your formula sums it up quite nicely.