When talking to customers about their app ideas, I ask the same 5 questions. One of the questions is critically important, and can potentially affect years of development.
“Will your app support iOS, Android, or both?”
Guess what everyone says?
“Both.”
Yikes. Supporting both platforms for your app is a lot of work. I mean A LOT. Especially for a customer building an app for the first time.
When your app supports both iOS and Android, you have just doubled every aspect of your project. The planning, the design, the marketing, the support, the maintenance, and the testing. All that translates into one thing. You’ll also need to double your budget and your timeline.
So, Why Does Android Cause Such a Headache?
Simple: there are a ridiculous amount of Android devices. Take a look at this image illustrating Android device fragmentation.
Every square below represents a device.
As of August, 2015, there are 24,000 different Android devices running 10 different versions of Android. This problem will only get worse over time, as more Android devices enter the market, and newer operating systems are introduced.
Getting anxiety? I am.
Can you imagine building and testing an app that supports 24,000 devices on 10 versions of Android?
To give you some more context, here are a couple of pie charts illustrating the breakdown between which operating systems iOS devices are running versus which operating systems Android devices are running.
Again, this data is taken from a report that's over a year old - which means this problem is even worse today, and it will only become more fragmented going forward. Over time, there will be more Android devices running more versions of Android. Which means more support, more maintenance, and more testing.
Salesforce finally gave up. In July of 2016, Salesforce elected to only support Nexus and Samsung Galaxy phones to avoid the dizzying Android fragmentation above. Beginning with Salesforce's winter 2017 release, Salesforce will only support Nexus and Samsung Galaxy phones.
“Due to the wide array of available devices and our belief in transparency to ensure customer success, we want to share the devices we use for testing and performance marking to continue improving our overall Salesforce1 user experience,” Salesforce said in the support document.
What's more, if you're developing for both iOS and Android, there's a good chance your app will actually perform better on iOS devices than on Android devices.
Check out this speed test between the brand new Galaxy Note 7 and the iPhone 6S.
Android Development is Hell
Oculus CTO John Carmack chose to partner with Samsung when developing the Gear VR headset. Focusing on a single device allowed Oculus to “bypass the development hell of Android.”
Why is it hell?
“I’ve got a lot of negative things to say about the Android development experience… Some of them are fundamental,” said Carmack. “But the reason this project was nice was the tight partnership with Samsung and that we were targeting one device.”
It's simply too expensive to test any app on every single combination of Android device and operating system. Because of this expense, folks building for Android typically only test on 1 - 2 phones. What's worse, these phones are usually a couple years old running an ancient version of Android, and represent less than 1% of current Android users. This kind of testing means it's hard to identify issues with your app on newer phones running newer versions of Android.
Once your poorly tested Android app gets into the public's hands, support emails start to pile up. The app functions differently or worse on different devices.
And you start to feel like you're shoveling money into a burning trash can.
How to Make Android Publishing Easier
There's a lot of reasons to support Android in addition to iOS - Android has a ton of smartphone market share, and developing for Android can be a great way to get your app in the hands of the most number of users. But market share doesn't matter if your audience isn't on Android.
Still interested in publishing to Android? My recommendation is to take the approach taken by Salesforce. Build and test on the newest Nexus and Galaxy phones (Samsung Galaxy S5, S6, S7, Google Nexus 5X and Google Nexus 6P).
If you can’t build and test on those phones, then you shouldn't be building an Android app. And if you decide to build for Android, you must budget for it appropriately.