Android First

techcrunch.gifThere’s an article "The fallacy of Android First" on TechCrunch. Emu developed on Android first, hit fragmentation problems and ended up on iOS. When developing an app, I think there are four main factors that affect Android fragmentation…
  • How an app is developed
  • The APIs required
  • The supported Android versions
  • The supported Android devices

These factors can also interact to compound the problems. It seems Emu mainly got tripped up with the APIs required. SMS is an especially tricky area on Android because Google have significantly changed the API over time. Most apps are just ‘information viewers’ and as such don’t hit such large fragmentation problems.

So what can others learn from this? First, I don’t think Emu did enough upfront analysis and research. They might have abandoned Android earlier had they known the difficulties earlier.

My advice to any new project is to get an experienced developer look over what you are about to do and advise if and how to proceed. They can save you a lot of grief. If your chosen developer won’t or can’t advise then move on and find someone who can. Do risky parts first to prove. If the app looks complex, think about a minimal proof of concept app before committing fully. All this advice goes for any app, not just Android or mobile.

Of problems, Emu spoke of…

"…difficulty of finding them, and of understanding them well enough to fix them. We can’t test on every Android device we support, so we get bug reports in the field that we couldn’t anticipate and can’t reproduce. And, plenty of bugs go unreported and, therefore, unnoticed."
 
People underestimate ongoing support and development (on iOS and Android). Nothing stays still. There are always new OS versions and new devices. It’s impossible to test everything. In complex apps, it might also be impossible to fix everything due to difficulties on specific devices. I have seen this on iOS as well as Android.

Android first? It depends. Take a deep look at your product’s technical requirements. Do some analysis and experimentation before jumping in. At the extreme end of the scale some projects are Android Only. Take a look at my fragmentation reduction tips. Additionally, plan for problems – on iOS AND Android. Also, don’t expect to be able to ship and forget.