After reading last week’s Next Web article on the ‘toll’ of Android fragmentation, I’ve had my fill of horror stories about Android support. I thought I’d set the record straight, based on Zipline’s experience with Wolf Toss, a game that we released to Android and iOS on the same day and has been a Top 20 title on both platforms.
Let’s roll back the clock. In 2011, I really believed the fragmentation issue was going to be a big deal for us. We’d spent most of the year beta testing our Moai game development platform, which had its first high profile iOS launch in September with Crimson: Steam Pirates. Our own game, Wolf Toss, was tested heavily on iOS as a result, and it should have had more Android testing before we shipped in December. Mea culpa.
In January, Wolf Toss was featured on Android Market, and shot up to a million users in a week, with over five hundred different Android device types. Yes, there were lots of users complaining of bugs and resolution issues, but it didn’t stop our average review exceeding four stars.
The team and I spent long evenings and every weekend testing on each Android device we identified as having an issue. Thanks to the remote testing service Perfecto Mobile, I personally tested over forty different devices for device-specific bugs. Even as late as January 31,I thought Android fragmentation was a significant challenge and wrote about it in a lessons learned article from our launch.
Guess what we found after weeks of testing? Yes, there were device differences but most of our problems were rooted in classic software engineering issues. We did see some crashes on specific devices, but the catalysts were devices that have less memory or run more processes which were causing the underlying issues to be exposed more often.
The actual root causes of our crashes were our own decisions – specifically, a stack corruption issue and a thread locking issue which took us some long nights to track down. We rolled those fixes back into our Moai platform, and added real-time crash reporting from Crittercism as well. Today our crash rate on Android is well under 1% of players and very close to iOS.
A big part of our Android problems came from a development effort that didn’t pay enough attention to Android up front. Only one person in our office even had an Android phone when Moai went into beta last summer. The best approach is to bite the bullet and start carrying a second phone, and make sure everyone on your team has access to Android as well.
Trying to support every Android device is like trying to support every model of iPhone and every major iOS version back to 2007. It’s not worth the effort, and technically not feasible for a demanding physics game like Wolf Toss. If you take the time to test properly on Android, and target a capable set of devices, then the main fragmentation problem you have to solve is different resolutions and aspect ratios. It’s a little more work than the four different displays that you now see on iOS devices, but well worth it.
For Wolf Toss, we set the bar at Android 2.2 devices with an arm7 CPU plus a minimum screen resolution of 320 x 480, which covers most Android phones designed in the last two years. Users who don’t meet that bar are screened from seeing Wolf Toss in the Android Market. If Android users are complaining they can’t use your app on their device, then you’ve probably incorrectly configured your app manifest.
Our major lessons were to test earlier and more often on Android, and to support Android screens like QHD and 16:9 aspect ratios out of the gate, because everybody hates letterboxes. The good news is that Android support in both Wolf Toss and Moai is now world class.
The idea that Android fragmentation is an insurmountable issue for developers is overblown. Our major problems were traditional software engineering challenges and we found only a handful of issues that were truly device-specific in the end. A little extra complexity for Android is worth your time as a developer.
Look at what Google has brought to their ecosystem: the most open, competitive market for smartphones, an open-source OS and unfettered distribution, immediate app deployment, and transparent, real-time customer transactions in Google Wallet. For a lean, fast moving startup, these are major advantages that make Android a priority.