28 comments

[ 5.3 ms ] story [ 67.3 ms ] thread
Lots of gymnastics to "prove" Android fragmentation isn't as bad as it looks. Pointless.
I don't even see the latest version of android (kitkat) in the data.

It bothers me a lot that nexus devices I purchased this year will be long forgotten months from now when Apple is prepping an iOS 7.1 beta for the iPhone 4 as we speak.

I know that google's model is to update core functionality through applications rather than via whole operating system updates but it's annoying that google doesn't strong arm the abusive carriers/vendors into allowing updates to the underlying OS in a timely fashion.

It gives the impression that an android device is what it is at the time it is purchased but an Apple device may evolve. I consider it extremely odd considering how Google has proven to themselves over an over that that upgrading people's common denominator platform is a great strategy (Chrome).

I am currently with android 4.4 on oldish HTC Desire HD. It is amazing what lifespan the devices have when they are unlocked and unbound. I dream for the day when mobile devices will ship without os and it will be for the user to choose.
It will never happen, if one looks at the history behind common OS for mobile devices.

Carriers and handset manufactures have too many interests into product differentiation.

Google doesn't update the OS for other manufacturers... Look at it this way - if I fork the rails repo it is up to me to pull/merge the latest changes, nobody will be pushing updates to my fork.
"long forgotten" as in still receiving very regular updates to key functionality, but just not in the way that you would (for no obviously expressed reason) prefer?

I've been seeing this expressed since the days of eclair, it was kind of audaciously false then, and its only got less true since.

Now we're at the stage were you can claim your phone will soon be "long forgotten" in one paragraph, admit that Google provides updates for core functionality via the app store in the next, then claim your device can't "evolve" in the one following that.

If you want to complain about OS updates, that's fine. But claiming devices are frozen in time when they leave the store is insane. The very definition of a smartphone is that you can install and update apps on it. The ecosystem around Android has been growing faster than anything Google could achieve alone.

When I read this I realize that Apple has set the landscape in your mind and thus you compare Android to it and Android comes up short. Which is ok because Google themselves initially feel into the same trap! Google's approach is to update core apps on a super frequent basis. That's really the functionality that matters. The underlying OS requires less frequent updates now that it/they are more mature. So pining for an OS update is probably putting your energy in the wrong location. Apple made OS updates relevant for the first time in years with iOS7 but I suspect iOS8 will be a relative sleeper and probably 9 too. It's the core set of apps that really still can impact how productive your phone is much more so than the OS these days.
That's because its not. I can't even tell if I'm running 4.1/2/3/4. I have a Nexus 5.
From a developer's standpoint it does matter. Every OS version, hardware version is another platform you have to support and test against. Even on identical hardware with an incremental version difference it is not uncommon for some strange edge case to cause something to break.
Simply not true - as long as you don't use internal APIs, apps made for an older Android are completely compatible in newer ones, and new APIs are usually backported to older Android versions with compatibility libraries. When you update your Android OS, all of your apps will continue to work the same and you don't even notice.

Contrast this to iOS - whenever there is a new iOS version, developers have to scramble to update their apps because they very often break or the UI is broken by changes, etc.

Android is much much less hassle when OS updates roll around, and I develop for both.

I back RyanZAG here (hey Ryan :) ). I went from 4.1.2 to 4.2, 4.3 and now 4.4.2 without hassles. The exception is KitKat where a lot of developers updated their apps specifically to support the new ART.

[Rant]: I find that it gets a bit silly in iOS land, in the sense that local (South African) devs who have abandoned/flopped apps had to go and update their apps after forever to match the 'look and feel' of the new iOS, whereas with Android one can go without noticing that.

As someone who has done a fair bit of Android development, it's ironic that you mention that. The Android design guidelines tend to change on six month basis, and not always for the better. Sure, the changes are usually smaller, but it can get pretty annoying after a while.
From a developer's POV, there are issues between 4 & 2. Nobody should even be on 3; it's like... the Windows Vista of the Android series.
He meant 4.1/4.2/4.3/4.4. Obviously there are huge differences between 2.3 and 4, and even 3, which barely existed anyway.
With the rise of Google Play Services, we might consider the Android "fragmentation" charts even more useless than this article claims they are.
Google services is out-of-option in China. Google Play Services may quickly contributed to the fragmentation of Andorids in near future as another factor.
(comment deleted)
In certain ways Google Play Services make Android even more fragmented than it already is, by lifting key components out of the operating system itself and into the Play Services bolt-on. This is certainly true if you count devices like the Kindle - which don't have Play Services - as Android devices (and conversely less true if you don't).
While the decoupled Google apps are nice for end users, they don't change that much for developers. I'd rather be free to use 3+ features such as the holo theme, actionbar, fragments, without compatibility libraries, 4+ features such as transitions, the new roboto fonts, updated json libraries, accessibility, etc. instead of the new maps view and GCM.
Fragmentation story:

I have an iPhone and wanted to convince people to use Threema instead of WhatsApp. Only 1 person wanted to give it a try. I was happy. It's a start.

But he has an HTC Desire HD. He is stuck at Android 2.3 and wasn't able to install Threema.

Android is a cross platform technology that makes it possible to run a single application on different hardware and software configurations. Android-based operating systems can look, feel, feature and perform very differently, but as long as the developer sticks to the standard, the Apps can run on all systems.

Android is, by definition, a "defragmentation platform". It allows companies to basically make their own operating systems but stay binary compatible through a common standard. The term "Android fragmentation" really just describes the fact that the defragmentation only works 95% instead of 100%.

It's still much more fragmented if you want to support devices outside the Android ecosystem. Try making an app that runs on the Galaxy S2, the HTC One and the Nexus 4. Then make one that runs on the Galaxy S, the iPhone 5 and the Lumia 720.

"Try making an app that runs on the Galaxy S2, the HTC One and the Nexus 4. Then make one that runs on the Galaxy S, the iPhone 5 and the Lumia 720"

What an absurd argument. There's a difference between platform fragmentation and having industry competitors. The fact that there are other mobile OS's does not reduce or negate the fragmentation within Android's ecosystem.

As for Android "by definition" being a "defragmentation platform," I think you're drunk on Koolaid. Android's operator-indulging multi-platform strategy makes it the very definition of fragmented.

The fact that such an obviously blinkered post reaches the top of HN comments speaks volumes for Android fanboyism on HN.

"Operating System" is certainly a ambiguous term these days. Two Android-based software systems can differ in user interface, applications, file systems, performance, interaction design and features. Compare Amazon's FireOS with Samsung's Touchwiz with Motorola's Moto X software: Here we have different industry competitors competing against each other. The only special position that iOS has in this scenario is that it is not binary compatible with the others.

Android did certainly not fragment the market. There were thousands of devices with incompatible software systems out there before Android came along. Android is not responsible for all the companies and form sizes and UIs and operators. These were all there before 2008. Android just made it possible for developers to target all these devices with the same codebase.

Terms tend to become ambigous when one has an agenda...

Otherwise, OS is a perfectly clear term, Samsung and Motorola use the same OS, Android. Amazon uses a customized version of Android. iOS is a completely different OS.

If you need to compare Android devices to the previous market in order to make it look consistent, it is in fact fragmented.

It's not like you need a new binary for each platform, but the screen sizes, device capabilities, and whether or not the drivers work properly differs across devices. Enough so that an app which works fine on some devices might not operate properly on a specific device or a certain manufacturer's device line.

Look at it this way. If Android wouldn't have existed, Samsung would've gone with Bada, LG with their own Bada-inspired clone with no binary compatibility with Samsung's OS, Sony would've made their own, too, HTC, and Motorola the same. Would that be a better situation?

Even if Microsoft got ahead and released Windows Phone early (which they didn't), you would've still had "hardware fragmentation" for developers. You would need to work with different resolutions, just like today, and with hardware from 600 Mhz ARM11 to quad-core 2.3 Ghz CPU's (same for GPU's).

And of course WP would need to be on the same amount of hardware Android is today, not just on the 5 models it is today due to the poor adoption. And it would need to support more than just Qualcomm's chips, and same goes for other components. The point is, the situation wouldn't be much better.

So Android did solve what could've been a big problem, and it's almost as good as it gets for this kind of situation (it can be better, but that requires not just technical solutions, but commitment from other OEM's too, to actually do what Google is asking them in order to further standardize the platform, but unfortunately many still want to go in their own directions).

The truth is this things are "no worse" than they were with other platforms before, it's just that Apple made it "better" for developers, but only because they got lucky (sort of speak) to get hundreds of millions of people to buy just one device that developers need to target - and get away with releasing it only once a year.

That's pretty unheard of, and it's the exception that proves the rule, I'd say. If you want everything to be "just like iOS", you'd probably have to get all of the world's inhabitants to use the same device - the iPhone. But that's kind of ridiculous, isn't it?

Let's make a reasonably fair comparison:

Android runs on all kinds of devices from different manufacturers.

Windows runs on all kinds of devices from different manufacturers.

I can write a program that runs nicely on pretty much any Windows box pretty easily. To do the same on Android is more painful (but that's mostly because desktop applications deal with varying screen resolutions more gracefully than mobile platforms).

I can upgrade pretty much any Windows box to the latest version of Windows.

I cannot upgrade most Android devices to the latest version of Android.

Swap "Linux" for "Windows" if my use of a commercial analogy offends your sensibilities.

Now, part of this is a problem with the phone market. But is Android fragmentation on tablets any better?

All you need to know about fragmentation is that when I build a mobile app for android, I have to put a clause in the contract that I will not support it, that it is untested, and that the client releases it at their own risk. Any updates to the app will require additional fees that may or may not include the purchase of a new device and that the client agrees to cover those costs.

It is just impossible to test it everywhere. I can't afford to purchase 700 devices to test on and the client can't afford for the QA on all those devices.

Products have to be pushed into the marketplace and then you have to react to the idiosyncrasies of each platform.

I'm dealing with an issue right now where my galaxy tab runs an app just fine, but a customer's sony device isn't reporting that it is connected to the internet.

It is a real issue because this isn't an issue with iOS and most of the time customers delay their android release because of the testing and quality control issue.