I have seen an increasing number of articles on the dreaded “F-word.” No, not the word, the big one, the queen-mother of dirty words, the F-dash-dash-dash word. I’m referring to “fragmentation.” Site after site claims that fragmentation is killing the Android platform, but I guess by “killing” they mean the same kind of killing that the Palm Pre did to the iPhone… i.e., none. More Android devices are coming out every month, pushing past technology limits, and bringing the OS to more users than ever before. But fragmentation is harming Android?

Dan Morill of Google said this:

Because it means everything, it actually means nothing, so the term is useless. Stories on “fragmentation” are dramatic and they drive traffic to pundits’ blogs, but they have little to do with reality. “Fragmentation” is a bogeyman, a red herring, a story you tell to frighten junior developers.

Ryan Paul of Ars Technica said this:

[R]estrictions effectively ensure that all Android devices that are intended to run third-party applications are basically the same with respect to application compatibility. In addition to mandating some consistent hardware specifications, Google has also taken steps to make the Android software more resilient to fragmentation.

And yet, we get people like Adrian Kingsley-Hughes of ZDnet saying things like

[T]here’s already fragmentation of the platform… For Joe Average, this created an ultra-confusing marketplace where operating system versions changed every few months. It also meant that compatibility issues were inevitable.

Apparently “Joe Average” has a tough time tapping on the Android Market icon and then downloading any visible app in the entire market. Google filters out apps that aren’t compatible with your device (due to both OS requirements and hardware requirements). That doesn’t sound ultra-confusing to me.

The reality is that developers will choose the lowest level of the Android SDK that they can build their apps against to target the largest possible audience. If a developer makes a live wallpaper, it will only show up in the market for people whose devices support live wallpapers. So the only real issue is the question of whether manufacturers and carriers will push out the latest version of the OS for their phones.

OS Updates

Undoubtedly, there will be older devices that aren’t able to handle the latest version, but those aren’t the high-end smartphones, and they will have prices which reflect that. As far as the phones that are capable of running the latest version, if consumers see that X manufacturer’s phones always have the latest Android version within two months, those phones will be popular, especially through word of mouth. If consumers see that Y manufacturer never upgrades its phones, those phones will be decidedly less popular. The same is true of carriers. And, fortunately for Android, the number of carriers and manufacturers behind these devices is not limited, so simple economics will put enough pressure on these companies that they’ll be eager to upgrade. We’re already seeing all the latest Android-based phones coming out with Android 2.1 (even ones that were slated for 1.6), and they’re all capable of running 2.2. With the huge performance improvement that Froyo brings, there is a large incentive for manufacturers and carriers to ensure they get Android 2.2 on their devices as soon as possible.

iOS Fragmentation

Anyway, people’s minds are pretty set on whether fragmentation is an issue or a scare tactic. I thought it would be useful to point out how this issue affects (or doesn’t affect) the popular iPhone because you really don’t hear much about it.

First, the iPhone has some advantages in avoiding fragmentation. It is made by one company. The OS is made by the same company. The phone is limited to a single carrier (in the US). The phone has very incremental improvements at one year intervals rather than spurtive, frequent improvements.

Despite these steady improvements, there are hardware differences that are further affected by the OS running on the iPad and iPod as well. Some devices don’t have a camera, some have a 2mp camera, some have a 3mp camera, some have a 5mp camera, some have two cameras, some have autofocus, and some have flash. Some support 3G and some only support WiFi. Some have 412MHz processors, some have 532MHz processors, some have 600MHz processors, some have 1GHz processors, and some we don’t know. Some have 128MB of RAM and some have twice that. Some have a magnetic compass. Some have a gyroscope. Some can lock orientation. Some are 480px wide, some are 960px wide, and some are 1024px wide. So there is hardware variation because devices must improve, or they will be left behind.

There is software variation too. Most devices are running a 3.x version, but that will change soon as some devices are able to upgrade to iOS 4 and some aren’t. Of those that upgrade, the features supported will differ. The iPhone 3G devices purchased for $100 a few weeks ago will never officially get multitasking. Hopefully the poor souls who bought those are able to wait out a two-year contract before realizing how essential multitasking is.

With all these differences, would you call iOS fragmented? I wouldn’t, and I wouldn’t call Android fragmented either. They’re both evolving platforms. Android had some catching up to do when the G1 came out, so it has evolved significantly faster than iOS, but evolution is not fragmentation.