When it’s time to start testing your new app or game there’s one headache that’s unavoidable – fragmentation. The two most popular platforms in the mobile world, Android and iOS, both suffer from fragmentation issues. It’s a much bigger challenge to deal with on Android because there are so many hardware manufacturers, and a bigger split on software versions.
For up to date statistics on Android software version distribution check the Android developer site. You’ll find that only, just over 5% of users are on the latest version, Android 5.0 Lollipop. There’s still fragmentation with iOS, but well over 70% of users are on iOS 8 now, so it’s not as pronounced. On top of software versions you also have to consider the differences in hardware and how they might impact the smooth running of your app or game.
Fragmentation is not a new problem
People make a big fuss of the fragmentation issue, but the truth is that this problem has been around since people starting developing games and apps. The PC market is horribly fragmented, with all sorts of possible software versions and permutations of hardware to test for. The basic principles of testing on Android are exactly the same.
- Start by identifying your target audience. Look at the most popular devices in your main target countries, and focus on developing a great experience on them. There are thousands of different Android smartphones and tablets out there, but a handful dominate the sales charts.
- Use default platform navigation and controls, whether it’s iOS or Android. If you’re porting, then do a proper redesign that takes advantage of the way your target platform works.
- Try to achieve the same thing on all versions of the OS you are targeting. You want the UI to be as close to identical as you can get.
Practical techniques, tools, and services that can help
It doesn’t make sense for most developers to try and cover every possibility. It would be far too expensive to buy in every possible Android handset. You want your target devices for some solid real-world testing, but you have options for the rest of the field.
- Employ automated testing to cover a lot of ground and flag possible problems on specific devices. If you build automation into your development pipeline, then this will serve you well going forward with updates as well.
- Consider outsourcing functional testing to a lab with a wide range of hardware, or, failing that, employ emulators to cover as many different models as you can.
- Form partnerships with other Android developers. You can agree to share APKs and help each other out with basic testing on different hardware.
Deal with defects as they arise
There’s no such thing as a zero-defect product. Your app or game will have bugs in it and there will be hardware and software combinations out there that throw up serious issues. Keep a close eye on your reviews and forums. You can deal with user defects based on untested hardware according to how popular each device is. Fix problems on popular devices first, and make sure you’re quick to test the big new releases.
Fragmentation is just one of the costs of doing business, but it’s not really as big a problem as is often made out. If you design and prepare properly, and have a solid testing plan in place, it needn’t cause you any sleepless nights.