One thing I always hear when reading about mobile development is fragmentation. Steve Jobs, who talks about Android so much because he isn’t worried about it, harps on it relentlessly. Just today I read, on an Android blog, the following quote:

In an iOS world, you only have to write code once and know it is optimized for every phone that’s been sold.

Bahahahahaha. Yeah right. I do iOS development, and let me tell you, fragmentation there is a huge problem. First off, there are different OSes on different devices. Here’s a chart of that:


Compare that to Android:


Pretty similar. Android in this case has the benefit of having fewer OSes in play.

Our newest app (not yet released) uses Gamecenter, which runs on iOS 4.1 or later only. Which means that when we move to the iPhone we’ll have to do two apps or simply be unavailable to half of the population. Even on the iPad, where we are developing now, it remains to be seen how many people will upgrade to 4.2.

If I make a website and buy ads for it on Google, I don’t have to filter my users out by operating system. If I buy ads for my iPhone app I’m doing it somewhere that will let me choose to show my ads only to people on 4.1 or better.

Then there’s  the hardware. Good luck developing anything for any iPhone before the 3Gs. I can’t find how many of those are left on the market (thankfully probably not too many, at least in the US) but if you want to support them you’re going to be adding a decent amount of extra work. Same for the first couple generations of iPod Touch which, by the way, don’t get upgraded nearly as quickly as phones.

And then there’s the display. We’re making a universal binary of our game that we want to work on the iPad, the iPhone 3GS, and of course the iPhone 4. As a result we have to do a bunch of extra work to get things to display properly on both handsets.

There’s plenty of fragmentation on iOS. It might not be as bad as Android. It just depends on what you’re doing. For some apps it won’t matter much at all on either platform. For some it will be impossible to support all devices. For many it will fall somewhere in between.

The post on the Android blog I mentioned earlier was inspired by Angry Birds, which has had some performance issues on older Android devices. But a little Googling shows it has issues on even the iPhone 3G.


Angry Birds Speed Test

Mobile devices will always have fragmentation because they’re evolving so quickly. They are right where PCs were 10 years ago, where hardware is improving quickly, developers are finding new ways to take advantage of it, and as a result users are upgrading frequently.

Nowadays you buy a PC and it lasts forever. I have a laptop that’s about 4 years old and it still feels more than good enough. But I’ll upgrade my phone every year or so for as long as Sprint lets me.

As a developer fragmentation isn’t a deal-breaker, it’s just another line in your cost-benefit analysis. And odds are it isn’t nearly as important as unit sales (where Android is now crushing) or ability to monetize users (where iOS has a healthy lead, though I suspect Android will close the gap significantly with PayPal) or distribution (also in iOS’s favor at the moment for most apps, though not all).

In the end developers will go where they earn the most money, and betting on fragmentation to stop that from being your opponent’s platform you’re making a big mistake.

About these ads

5 Responses to “Fragmentation”

  1. Angelo Alberico Says:

    I appreciate your unique experience but I must say that the iOS graph was released 7/22/10 or about a MONTH after 4.x was released.

    I’d love to see the updated graph of how the picture looks towards the end of the year and then I’d like to read if your experiences have changed in any way because of this.

    I agree, Fragmentation is a silly argument it will cause issues for some devs and not for others. So like you said, follow the money.

  2. Angelo Alberico Says:

    Looks to be getting better: 68% of iOS devices on 4.x and the remainder are on 3.x which I would assume are mostly iPads.

    • The iOS graph divides into 1.x, 2.x, 3.x and 4.x ehere the Android counterpart uses the decimal places. If you were to change the Android graph to follow the iOS convention there you’d have 78% using 2.x and 22% using 1.x

      Apples and oranges.

      • Well- the question is not really in decimal, but in the OS abilities. For me, as a developer it doesn’t matter whether the user is using 4.1 or 4.0, the only difference is 4.0 vs. 3.X, because many things changed then (this isn’t the case for all the devs).

        I don’t know about android. How big are the differences between 2.1 and 2.2?

        And btw – the graph is old

  3. pretty soon mobile apps are going to have minimum requirements like pc apps/games

Comments are closed.


Get every new post delivered to your Inbox.

Join 31 other followers

%d bloggers like this: