Device fragmentation can be a serious hindrance to providing great mobile user experiences. A review of the most common issues faced by developers.
According to the latest study by OpenSignal, there are over 24,000 distinct devices supporting one version of Android or another and differing in screen resolution, form factor, keyboards, processors, available memory, etc. This figure has seen a sixfold growth since OpenSignal’s first fragmentation study, which spotted almost 4,000 distinct devices. So, device fragmentation is definitely a big issue for developers supporting Android, and it can be so hard as to make developers stay away from going Android-first, but it also affects other platforms, such as iOS, with its varieties of retina/non-retina displays, different iPhone/iPad form factor, and multiple iPhone resolutions.
As Elliotte Bowerman, vice president of marketing at Sourcebits, summarizes it, there are four major issues that come with fragmentation:
- the quantity of bugs, that grows with the number of devices;
- the difficulty to find them, since they do not appear everywhere;
- the impossibility of testing on every supported device, which drives developers to rely on bug reports from the field;
- the number of bugs that go undetected, since many bugs found in the field are not reported at all.
Most bugs tend to arise in three different areas:
- varying screen sizes, which makes it hard to create UI that adapt to all of them correctly;
- distinct hardware capabilities, such as processor, memory etc.
Another dimension of fragmentation is related to OS versions. Again, this can be a problem for Android specifically, as Conner Forrest reported for TechRepublic: a few months after the introduction of Android OS 5.0, Lollipop, only 3.3% of the installed base was running it and, what was worse, new devices were introduced with older versions of the OS.
Martin Poschenrieder, founder of mobile cloud testing provider testmunk, has recently identified typical UX issues found in mobile apps:
- Sizing issues: this can regard not only graphical elements such as buttons, but also text.
- Missing visual elements: some elements may disappear and thus make the corresponding functionality not available.
- Placement issues: elements can appear out of place, i.e. not centered.
- Obstructed functionality: a typical case is with the keyboard appearing on screen and hiding some UI elements, such as a button to confirm input, or even the input field itself.
For Poschenrieder, too, the tricky part of issues related to device fragmentation is that they tend to appear on specific devices and are not observable everywhere, which makes them pretty hard to spot.
Google has been working hard in the last few years to solve Android’s fragmentation issues, in particular those related to slow adoption of newer Android versions by introducing Google Play Services, still fragmentation is one of the biggest selling points for mobile testing providers such as TestObject, Test Plant, Testdroid, testmunk, and many others, which will allow developers to run their apps on a variety of devices, use different mobile network operators, and simulate varying levels of service.