Fragmentation has been a contentious issue in Android quite literally since the mobile operating system was announced.
Apart from being a cudgel for trolls to use in online flame-wars, the diversity that comes with fragmentation is now largely seen as a net positive for consumers of Android devices. After all, we’re given so much freedom in choosing the kind of device with the kind of software we want that it’s hard for the average consumer to care about fragmentation. Visualizing the incredible variety of Android devices produces a beautiful mosaic of Android’s diverse representation.
When we talk about Android fragmentation, as a rule we’re talking about the shocking number of operating system versions that are in use at any one time, and how users are slow – not through their own fault – to adopt the latest and greatest release.
But there’s a bigger problem facing Android, and one that has an even greater negative effect on developers than operating system fragmentation – device fragmentation.
Hardware and software fragmentation doesn’t make for a happy software developer. In fact, quite the opposite. Developing an app across so many different hardware and software configurations can prove to be a major nuisance when debugging. OEMs can make major or subtle changes that need to be accounted for when developing an app, but there’s really no easy way for the individual developer to ensure that their app will work universally. While the average consumer has long since forgotten about the fragmentation debate, the issue still haunts Android app developers and there’s seemingly nothing to do about it except suck it up and deal with the errors as they appear.
One OEM in particular receives a large portion of hate for the headaches they cause when developing an app — Samsung. Developers have been ranting about Samsung for years now, some even writing such scathing pieces as “There is a Special Place for Samsung in Android Hell” which describes a particularly frustrating bug stemming from Samsung devices and the support appcompat library. I would like to draw attention to one paragraph in particular from Mr. Ambri’s rant, which excellently outlines why developers still care about fragmentation:
If you are an Android developer, your hatred for Samsung devices is probably boundless. More than an average user, for whom Samsung is synonymous with silly Touchwiz and excessive bloatware, you despise Samsung because you don’t have a choice. Because of Samsung’s massive market share, you simply cannot choose not to support Samsung devices. And that’s what hurts the most; the fact that this choice is taken away from you!
This is not a rant from the olden years of Android’s existence either – this post was published in the middle of December last year. By comparison, with 8 to 10 different iOS devices, a developer can cover 100 percent of iOS users. To do the same with Android he would need thousands of test devices, and then test the software across all devices and platforms – an impossible task.
The Android fragmentation is seriously affecting developers. It’s bumping up support costs and low reviews for the app from dissatisfied customers. Unhappy customers posting negative reviews because of hardware compatibility issues can be lethal for an app, even when the developer is not to blame for the problem.
This, in turn, is harming Android developers. And these Android developers are the folks who build the ecosystem and give people a reason to embrace the platform.