Shattered by LexnGer via FlickrMobile1 fragmentation is going to get significantly worse over the next few years. While this fragmentation will be bad for end users in some cases, it will be particularly bad for developers.

The number one problem that app developers tell me they face today is how to deal with platform fragmentation. How can they target all the varied mobile platforms out there in a sane way? There are things they can do that help, but no silver bullets.

I explained how Google has irrevocably lost control of Android in my piece titled Fragmentation is Not the End Of Android. There, I described the five axes of mobile fragmentation. It’s worth covering this taxonomy again because I believe fragmentation in the mobile ecosystem2 is getting worse, and will continue to get worse before it gets better (actually, I don’t think it will ever get better).

I’m not talking specifically about Android here; I’m discussing the totality of the mobile ecosystem, with a focus on developers.

The Five Axes of Mobile Platform Fragmentation

Each side of the mobile ecosystem (End Users, Channels, Device Manufacturers, OS Providers, Services, and Developers2) contributes to and is (sometimes positively, sometimes negatively) impacted by fragmentation. When fragmentation is positive, it’s called “choice” or “variety.” When fragmentation is negative it’s, well, fragmentation. Since this piece is focused on developers, and fragmentation is rarely good for developers, I’m emphasizing the negativity.

From a developer’s perspective, there are five axes along which fragmentation exists:

  • User Interface
  • Device
  • Operating System
  • Marketplace
  • Service

A different degree of fragmentation can exist along each of these axes. For example, Apple’s iOS platform has almost no fragmentation along the Marketplace axis because Apple has been so hardcore about ensuring that the App Store is the only marketplace supported. A relatively small amount of fragmentation on the User Interface axis exists because Apple has been consistent with UI. Likewise, there is only a small amount of Device fragmentation with iOS due to different generations of iOS devices having different hardware capabilities (such as front-facing cameras and Retina displays).

On the other hand, the fragmentation of Android is severe, across all of these axes, regardless of how Eric Schmidt tries to spin it. Fragmentation of Android is most obvious along the Operating System axis where the majority of Android devices are still running a version three generations old. Across the other axes, the fragmentation is significant, if just not as well understood. And it’s getting worse. Recently we’ve seen, by example, increased fragmentation along the Services axis in Android with Google’s defining Play-specific APIs. Amazon building its own Android app marketplace for its Kindle Fire devices is fragmentation on the Marketplace axis.

Fragmentation Exists Within and Across Platforms

In 2009-2010, while Android was still a nobody, and the Apple App Store, essentially, had no competition, (smart) developers had it easy: just target iOS.

However, today, cross-platform mobile development is something that all developers must do in order to reach the largest audience. I’ve covered this here3. Today, Amazon is selling enough Kindle Fires to make it meaningful and Windows 8, even if it is a failure (it won’t be) will have an installed base of hundreds of millions in the next 12 months.

How do developers view this?

User Interface: Consider the poor developer who needs to build a high-quality, immersive experience for the largest number of phone and tablet users. How many UI frameworks must the developer target? How many UI metaphors (e.g., single home button on iOS and the weirdly inconsistent jumble of buttons on Android devices; live tiles on Windows vs. widgets on Android) must he/she take in to account?

Device: How about screen resolutions, color depths, and input methods (touch, pen, keyboard, mouse, voice, gesture)? Developers have to deal with the varying modalities of input, ranging from voice prompts via Bluetooth in the car to finger swipes on a phone to keyboard shortcuts on a tablet with keyboard attached.

Operating System: While I’ll argue that all three major operating systems are now fundamentally the same (I mean, really, at least MS is finally close to getting rid of Windows CE), they still all have varied APIs for accessing OS functions. For what it’s worth, I include language choice here. As a developer needing to target multiple platforms, how do I deal with the Objective-C, C#, Java, and JavaScript mess?

Marketplace: Build the app. Submit the app. Have it rejected. Approved. Sign up to get your 70%. Or call APIs for in-app commerce. Do this at least five times in five different ways (Apple App Store, Google Play, Windows Phone Store, Windows 8 Store, Amazon Appstore). Oh, and even after all that, you have to deal with at least the same number of update, feedback, analytics, and user review systems. Oh, and even after all that, you have to market your app for it to stand out. Let’s say you have $10k to spend on app marketing to get it to rise above the hundreds of thousands of other items across all the marketplaces in which you need to participate. How are you going to divide that marketing spend up?

Service: So far, most business critical services, such as mapping, search, social networks, and cloud storage are generally available on all platforms (e.g., a developer can use Google mapping APIs on iOS, Android, and Windows by calling the same REST APIs). But not all services are created equal on all platforms. For example, developers can call Siri APIs on iOS. But once they do, what do they do on Android or Windows Phone 8?

Fragmentation is Getting Worse

When all we had were Windows PCs, things were relatively simple. Even with the browser wars and the “great thing about standards is that there are so many from which to choose” world of the late ’90s, developers coped.

But the mobile ecosystem adds far more complexity with six market sides and five axes of fragmentation. Radical innovation in UI metaphors, device form factors, input methods, display resolutions, programming languages, commerce systems, and Web services will continue.

Just wait until Amazon finally ships the Kindle Phone — likely with unique hardware capabilities — and starts to more strongly push more of its own service APIs.

And watch what happens when the flood of cheap (sub $100?) tablets start selling at Walmarts en masse.

Then there’s Google: At some point, its shareholders are going to say enough and insist that the company either starts making money directly from Android, or simply writes the whole thing off as a $20B Titanic. If Google starts really trying to directly monetize Android, it will be through Google-specific services that will be unique to Android.

Consider what happens when TV platforms such as Xbox, Google TV, and whatever Apple finally does take off. Yes I know TV is not really “mobile,” but once TVs gain app marketplaces — and they will — it’ll really be part of the same broad ecosystem… and I’ll have to rewrite this post.

Through all of this, developers will have the suckiest time because they will be expected to cope.

At the same time, though, I believe that this means opportunity. It means that smart, agile developers who figure out how to cope will do very well. There will continue to be no shortage of jobs for developers. I believe that Mark Andreeson is right: Software is eating the world. I also believe in the corollary: The (mobile) world is causing more software to be written.

I also believe that the pain of fragmentation will cause an acceleration of larger and larger pieces of “apps” being pushed to run in the cloud instead of on a device. This bodes well for the PaaS and SaaS providers of the world (especially those focused on easing mobile developer pain like The Buddy Platform, a company in which I’ve invested and for which I advise).

I’m skeptical that any of the big players representing the other market sides of the mobile ecosystem will do much to ease fragmentation for developers. It’s just not in their interests. Apple couldn’t care less. Google may try (it’s not evil, after all), but its current course and speed mean that things it does try will only make the situation worse. Who knows about Microsoft; I see signs MS is serious about enabling Experiences across all devices, but other than supporting Xamarin’s cross-platform tools, it doesn’t seem to be doing much to ease developers’ cross-platform pain.

I’m also skeptical (as I’ve made clear) that HTML5 will help any time soon (it’s simply not real on the majority of mobile devices).

Mobile fragmentation is bad today. Due to continued innovation, competition, and a broadening complexity of the “mobile ecosystem,” it’s going to get worse. As someone who builds products to delight consumers, I am both frustrated and pleased by this. I’m frustrated because it makes some things harder for me. I’m pleased because it means that innovation and competition are alive and well, and at the end of the day, that’s what moves the technology world forward.

Charlie Kindel is building a Seattle startup doing innovative things where space and time collide ( He is active in the Seattle startup community as an angel, advisor, and mentor. Charlie was previously the GM for the Windows Phone 7 app platform at Microsoft. During his 21 years tenure at Microsoft, Charlie built a broad range of products. He started his first software company while in high school in 1983 and built some of the earliest shareware for Windows. He is passionate about customer focus, lean methods, going deep technically, soccer, and cars. Read his musings about startups, technology, and other random things on his blog and follow him on Twitter.

1How I Define Mobile

2The Market Sides of the Mobile Ecosystem

3Apps Must be Cross Platform

Image shared by LexnGer via Flickr