This Week’s Topic — Building for Android’s Fragmented Marketplace
How does fragmentation affect development and testing?
With iOS apps, by supporting the latest version of the operating system (OS) and one back, you’re going to get more than 90% of iOS users. Unfortunately, this isn’t the case for Android. To get 90% of Android users, you need to support five or six versions back on top of the current OS.
The Android device ecosystem is highly “fragmented,” which means there are a lot of different devices worldwide that can run Android. Hardware vendors aren’t incentivized to provide updates to the newest operating systems because they don’t make money from you keeping your phone for years on end; they make money by selling new hardware.
As a result, the Android landscape is rife with hundreds of thousands of different devices and configurations. Features often do not work the same from device to device. Since more QA is involved when developing an Android app, the testing phase tends to be longer than that of an iOS app.
Does this mean it’s more expensive to develop an Android app over an iOS app?
Well, it depends on the arrangement you’ve made with your development team. As long as you limit the number of operating systems and hardware types you support, it doesn’t necessarily mean you’ll pay more to develop an Android app than an iOS app.
Long term, however, the costs can increase if you decide to continue to support customers who run older devices. If you add in new features that take advantage of state-of-the-art APIs provided by Google, you might need to spend extra time ensuring those features work correctly going back to devices that are 5+ years old.
Why is a crash reporting tool even more important for an Android app than an iOS app?
As developers, we try to catch bugs in our QA and testing process before an app delpoys. But it’s not realistic to catch every bug due to the sheer number of Android devices and combinations of software and hardware put together.
Some of the Android apps we’ve developed have 20-40,000 different types of devices working with them, so there’s no way to test all of them. Oftentimes because of the fragmentation issues in Android, you have to pick four or five popular device configurations and test against those. Once you make sure it works well with those standard types, you release it to the world and fix issues for one-off devices as they come up.
This is why a good crash reporting tool is critical. When a crash happens, the tool will send a report to the developer with detailed information about the crash (which file/line number the code crashed on, device information, steps the user took to get to that point, etc.). Having this information makes the bug hunt a bit easier for developers to solve.
For more Android development tips, like why a burner phone is a good way to test your Android app, check out this podcast episode.
More About Our Sponsor
This week’s FAQ Friday is sponsored by The Jed Mahonis Group. The Jed Mahonis Group helps businesses strategize, design, develop, and deploy custom iOS and Android mobile applications. The company has partnered with many startups and large brands over the years to deliver software that is used by millions of people around the world, including companies such as Great Clips, Green Mill, VSI Labs, and Kwikly.
Meet Our FAQ Expert
Tim Bornholdt, Partner at The Jed Mahonis Group | @timbornholdt
Tim got his start in web development in the first grade, so he’s been building websites and apps for more than 20 years. In addition to being an accomplished software developer, Tim is also an award-winning videographer and podcaster. He currently edits the C Tolle Run podcast hosted by Olympian Carrie Tollefson, and he hosts the Constant Variables podcast where he breaks down complex mobile app development topics for entrepreneurs and product managers.
Looking for more Android development tips? Ask Tim and The Jed Mahonis Group team questions on privacy and more on Twitter at @timbornholdt.