Mobile Fragmentation

fragmentation

A term you may hear bandied around when people talk about what OS to choose is “mobile fragmentation.” The term itself is rather vague, but it’s still a serious concern nonetheless. Essentially, mobile fragmentation is the paradigm that mobile OSs have been slipping into in which a userbase has different versions of the operating system, meaning one cannot safely take advantage of newer opportunities if coding for clients on older systems is a consideration. In short, it’s one of the most annoying problems you’ll face as a developer.

To put this into specific terms, think about how many versions of Android you’ve heard about. “Jelly Bean,” “Ice Cream Sandwich,” “Honeycomb,” and “Donut” (ooo I’m getting hungry), are all code names for Android revisions. Each revision brings with it a host of new features, while also mostly maintaining backward compatibility. Getting easier ways to do things faster, better, or smarter is always welcome for a developer, but it’s a dangerous gamble. Let’s say you wrote an app and two weeks later, “Jelly Bean” came out with a killer new feature that would make your app really stand out. You implement it, test it, and release it, but whoops, all the people without “Jelly Bean” can’t use that feature now. Not only do you lose face with your users, but the quality of your app isn’t what it could be because you have to support older clients. That’s no good.

“Mobile fragmentation” is an interesting term because it’s not limited to just mobile, though it is certainly most prevalent. These same compatibility woes can be found in all OSs from Windows to Mac OSX and web browsers too. Just ask any web developer if their page works with Internet Explorer 6 and watch the veins pop out of their head. Though the problem exists in many places, it’s not nearly as bad as it is with mobile operating systems. Take a look at these usage statistics for operating systems.

Source: StatCounter Global Stats – Operating System Market Share

 

 

 

Though there is market segmentation, it’s not nearly as pronounced as it is for mobile. Here’s the stats for Android alone:

android-usage

It would be one thing to have the majority of the market share between two, but having a close third place only works to make things worse. What this essentially means is that if you want to capture the widest market possible, you cannot use anything added to Android after “Froyo” was released. Even if you take out its 2.4% and decide that only having 97.6% compatibility is fine, you’re still limited to “Gingerbread,” a version that hasn’t seen an update since September 2011. Though you may not need any features added after “Gingerbread,” having more options is always better than less.

So how does” mobile fragmentation” affect other mobile OS makers? Well here’s a fragementation chart that Apple recently release for iOS:

ios_usage

As you can see, the majority of the market is dominated by one operating system version. This is due to a few reasons, first and chiefly of which is the amount of devices to support. The amount of different Android hardware configurations dwarfs the amount of iDevices. The amount of Android tablet designs alone eclipses the different iOS hardware. Though the large number of designs promotes competition, the different hardware configurations mean different performance with each OS.

Google also doesn’t push its updates to Android devices, it’s up to the carriers and hardware providers to verify that the latest revision will work to their tastes on their hardware and then allow their users to update. Apple, on the other hand, can push their updates directly to devices they deem need the update. Another interesting fact is that if a user declines this update and wants to restore their phone to factory settings, Apple forces the update. Keeping tight control on both hardware and software means Apple can create a more ubiquitous experience for both users and app developers, sometimes at the risk of performance on older devices.

Windows Phone is interesting. The usage statistics look like this.

windows-phone-usage

There are only two revisions, so data on this is low, but a big reason there’s such a disparity is because Windows Phone 7 support has been dropped and Windows Phone 8 is the current operating system. It seems like Microsoft is going with a Google-like approach in letting older devices wither away without updates and hoping customers will buy new phones with the new OS, but as a result, that means more work for programmers. For the record, though Windows Phone 7 code is almost identical to Windows Phone 8 code, you still need to create a new project, import the old project and export it like it was a new project after fixing any compatibility errors. In order to do this, though, you need a Windows 8 PC, which explains why I haven’t bothered moving Yeah Dawg.

Market fragmentation is an important issue to think about and be aware of when developing your code. In order to appeal to the widest market, but still have the best features for your app, careful planning is needed. For some ways around this, check out our next article on how to work around a fragmented market.

Leave a Reply

Your email address will not be published. Required fields are marked *