This story was written by Keith Dawson for UBM DeusM’s community Web site Develop in the Cloud, sponsored by AT&T. It is archived here for informational purposes only because the Develop in the Cloud site is no more. This material is Copyright 2012 by UBM DeusM.

Mobile Fragmentation Revisited

It will get worse before it gets better, if it ever does.

From Android to iOS to HTML5, mobile platform fragmentation is rearing its head everywhere.

We last visited the subject of fragmentation in the summer (see: Fragmentation & the Mobile Developer. In those earlier, more innocent days, we were talking mostly about the plethora of screen sizes and device manufacturers an models, and mostly on the Android platform. Apple's iOS is not immune, however, and the products introduced this month don't exactly help the situation. We're even beginning to see fragmentation in the one arena that is supposed to be its cure: HTML5.

Writing on LockerGnome, guest blogger Charlie Kindel dives deep into the subject in his post, The Fragmentation of Mobile Fragmentation. He first defines five axes along which fragmentation occurs, and these provide a convenient framework for out discussion:

Major fragmentation is the rule along all of these axes on Android. Apple is beginning to fragment along Device and Service lines, as we discussed last August: the various older and newer iOS devices differ in their peripherals (camera, etc.), resolution, and processors.

But it's when we look across platforms, at what a developer actually has to do to get an app into wide availability, that we see the true downsides of fragmentation.

Unless the developer elects to tie his or her fate to that of a single cross-platform wrapper service such as Adobe PhoneGap -- a decision that carries risks all its own -- the problems of dealing with multiple platforms' user interface conventions alone are daunting. Throw in device differences such as resolution, camera specs, accelerometer APIs, etc. and the complications mount. Now cross that with operating system differences such as development language (C, C#, Java, Objective C, JavaScript) and the developer is ready to call it quits. And we haven't even left the development phase yet. Marketplace fragmentation means that submission, approval, tracking, and marketing all have to be done times five (for the Apple App Store, Google Play, Windows Phone Store, Windows 8 Store, and Amazon Appstore).

Charlie Kindel points out that things will only get worse with the introduction of an Amazon phone (likely), an Apple TV (possible), and very cheap tablets sold at Wal-Mart (a near certainty). He believes that these developments will cause more and more of app functionality to be pushed out to the cloud (as our own Mark Shander has argued on other grounds).

Standards to the rescue?
Finally, I-Programmer's Mike James tackles the difficult subject of fragmentation in the world of Web apps written in canonical, standards-track HTML5, CSS, and JavaScript. A developer will quickly discover that there are many device-specific things that simply can't be done by sticking to standards. Despite the fact that the W3C is sponsoring an ever-widening range of standards-in-development to address such areas as telephony, audio and video, motion, and more, new hardware-based capabilities are being introduced into these consumer devices at an even faster pace.

Again, should we turn to cross-platform frameworks to provide a single set of capabilities across devices? Which framework shall we use? The multitude of choices is itself another kind of fragmentation. Each has its own APIs, its own style of packaging. Portability is nonexistent.

Google's and Mozilla's push to introduce OSs based strictly on HTML5, namely Chrome and Firefox OS, in James's view simply add to the fragmentation in the world of standards-based development.

Looking down the road of mobile app development, it can get a little scary. Do you see any rays of hope? Let's hash it out in the comments.