Who's Afraid of Android Fragmentation?
Nerval's Lobster writes: The dreaded term "fragmentation" has been applied to Android more times than anyone can count over the past half-decade. That's part of the reason why game developers often build for iOS before Android, even though Android offers a bigger potential customer base worldwide, and more types of gaming experiences. Fortunately, new sets of tools allow game developers to build for one platform and port their work (fairly) easily to another. "We've done simultaneously because it is such a simple case of swapping out the textures and also hooking up different APIs for scores and achievements," London-based indie developer Tom Vian told Dice. "I've heard that iOS is a better platform to launch on first, but there's no sense for us in waiting when we can spend half a day and get it up and running." So is fragmentation an overhyped roadblock, or is it a genuine problem for developers who work in mobile?
"No disassemble Johnny Five!"
I'm a good cook. I'm a fantastic eater. - Steven Brust
The number of screen resolutions alone is enough to make anyone balk at Android.
You are confusing market share with profit share.
It's been shown in many studies that the vast majority of android users do not buy any apps and are mostly on low end devices that wouldn't be able to play the better games anyway.
That's the real reason why devs have an iOS first approach.
Last night I dreamed that Frances McDormand was shoving my phone down a chipper.
As more and more devices of varying features and sizes have been released by Apple, there's been more and more work developers have had to do to adopt the different sizes/features of those devices (I still see new releases on the app store that state a new feature of "Support for iPhone 5S size" or similar)
It hasn't been until recently that Apple has given developers the tools to create views that don't need to know the specifics of the device it's running on, thereby avoiding silly checks like
if(device == IPHONE) {....} else if(device == IPAD) {....}
AC comments get piped to
Yes!
There'll be forks, there'll be distros that die out but ultimately choice is good. Out of all the traditional Linux distributions eventually a status quo develops of some core popular ones. Over time they fall out of favour and the critical mass slowly moves to another. In the medium term maybe some fresh eyes and fresh thinking will solve some of the current issues that plague users now. Will they have vested interests? May they take things down a path that turns out ba? At times, probably but there's a fork for that
It's mostly FUD that the trade rags are copying from their corporate master. Like all good lies, there's a solid kernel of truth, but it's not nearly as bad as stated. Yup, my games don't run on poorly implemented cheap Chinese tablets. However, it's not a big problem for me.
One of the reason people developed for iOS first was the platform had users who on average had higher incomes and spent more money on apps. So if you were trying to develop an application to sell it was more likely to show a return. Also there is more piracy of apps on Android.
Software fragmentation at a high level hasn't been all that scary of a specter for Android yet. Hook into a few core APIs that pretty much work everywhere, and off you go. There haven't been any successful whole-system Android forks that have been able to challenge mainline Android with any semblance of significance in market share.
The problem is in the details of the hardware, and to a lesser degree, software implementations. Screen resolutions; GPU capabilities; the difference in performance between the slowest and fastest (non-obsolete) device on the market; highly variable amounts of storage, VRAM, network bandwidth; limited vs unlimited data plans; the amount of other crap (that may interference) that the user or manufacturer has already installed on their phone; etc. etc.
A lot of devs are starting to whitelist their apps for specific phones, or at least for specific SoC make/model/generations. Your OpenGL fragment shader may run fine on a Qualcomm Snapdragon platform with an Adreno GPU, but crash the app or the whole system on ARM Mali. Your game may get 30-60 FPS reliably on a modern Tegra GPU, but deliver a slideshow on a Droid Mini from late 2013.
And that brings me to my second point: the hardware advances too quickly. A lot of people expect their smartphone to last them 4 years, maybe longer. But if you look at how far phone specs have come since 2010, it's pretty ridiculous. Most 2014 Android games and even non-trivial business apps won't even *launch* on a phone with specs 1/10th as capable as the state of the art.
These problems are hard enough to solve on their own. Most devs don't even have time to think about supporting other core systems with forks or replacements of the core Android APIs.
You know who's hurt the most by fragmentation? The users.
For iOS, most apps require the latest version to run, and Apple actively pushes developers to do this. When I check the requirements for the Android apps I use, most require Android 2.3 or higher, some 4.0 or higher and some very specific ones require 4.4, but that's SDFix, to fix usage of SD cards that was broken in 4.4. So for most Android apps nearly every phone is supported, given sufficient storage. Maybe some games will become slow, but other apps usually don't care much.
Not fragmentation of Android, but of the apps. I use a couple of tablets, both Android, extensively in my work and off-hours, and I am sick to death of all the apps that are "optimized" for a freaking postage-stamp-size screen on a phone and are a train wreck on a tablet. I've even run into some recently that will only display in portrait mode -- rotate your tablet to landscape and the UI doesn't change. Any programmer who does that in 2015 should have his/her keyboard taken away and fingers broken.
Some apps do work and feel at home on a larger, landscape screen, but not nearly as many as I wish. How many million Android tablets do people have to buy before developers figure out their shortsightedness is pissing off would-be customers?
I'm not afraid of fragmentation, I'm afraid of a monoculture. Let's be honest, if you aren't in the Google Play Store, you don't matter. There aren't too many enthusiasts out there rooting their phones to be able to use f-droid, and the other stores are useless.
Google is the de facto gatekeeper to all things Android. They refuse to fix long-standing security bugs in an Android version that remains installed on many millions of phones. They routinely suspend or ban developers from the Play Store for automated quote-unquote violations, decided by a bot, that carry no explanation or details. If your Google Developer account is banned for any reason, they also lock you out of your Google Drive, Google Wallet, and everything else along with it. And don't even get me started on the problems with the developer tools where once you achieve a working setup, you'd better image your known-good environment and hope that the next build (that you need to take advantage of New Bleeding Feature X) doesn't irreparably break everything.
I'm not about to migrate to iOS, but I've certainly given up on Android for the time being. I'm paid to maintain some internal applications for my company and I have a couple of toys that I run on my own phone, but in terms of developing for the public, that's on hold until Google gets their shit in order. I've seen too many developers get not only their developer account but their entire "life on Google" wiped out by some automated ban process. It's in my best interest to quit while I'm ahead and my accounts are in good standing.
I install all kinda apps with no real problems.
...Variety of devices, Running different versions of the OS.
The first one IMHO is a strong point for Android since there's so many different devices you're likely to find what you want (cheap, expensive, large, small, metal build, removable battery...). In this respect Windows Phone also has an interesting number of devices (although infenitely less than Android) and iOS is horrible in this respect: You basically have this year's or last year's model, neither of which is exactly cheap.
The second one is definitely bad: Several versions of the OS having significant marketshare means extra work for developers, and fewer apps for users (since some require a version newer than you have). Windows Phone and iOS are much better than Android in this.
The real fragmentation is not within Android. It's across different operating systems. Therefore if Apple wanted to reduce fragmentation they would switch to Android. Do I want Apple to switch to Android? No. But this just show how silly the whole "fragmentation" argument is. Fragmentation is choice.
I'm going to take a wild guess and state the reason it took three months before my GOOGLE BRANDED DEVICE (Nexus 7 2013) got Lollipop after it went GA is issues with fragmentation. It seems like nearly every device had severe and differing issues with the original builds and the update kept getting pulled and pushed back. It works pretty well now, except wifi is unstable and it has a memory leak that forces a reboot every couple of days.
When iOS 8 went GA I got it the next day on my iPad Air. No serious issues.
My Other Computer Is A Data General Nova III.
I'm not afraid, I just do my best to deal with it.
I've heard stories about "the fragmented linux landscape"(tm). And yet I've seen programs specifically targeting some other system, and I have no problem getting it going on whatever version of Linux I'm running. And when I was in university they had Sun boxen for labs (it was the target system), and I would write software on my home computer running Linux, and then change 2 lines (locations of library paths), and recompile and the software --advanced networking software-- would run without fail on the Sun boxen. I even got extra credit for making my software cross platform. And so its incompatible, just like Bill Gates has wanted all of his software to be since 1991. Except that getting rid of the "in" and making it compatible is in most cases a very minor thing. Compilers even give big fat whopping hints about how to fix things. And if you have half-a-bit of game at all, you can do the whole job in 5 minutes. Oh and one more thing about profit share vs market share: this has gone on for a long time in the computing world. Company A sells product at HighPrice, Company B sells product at LowPrice. (lets say the first is Sony and Betamax or Rambus, or the IBM and the microchannel bus; and the second is competitors and VHS or everyone else, or everyone else and the IDE bus). And the cheaper version wins out every time. As for 3rd party developers, Apple doesn't share profits with them, and a lot of people with phones are saying "I spent $5000 on a phone and now they want more for games or apps" as opposed to someone who says "I spent $300 on a phone, and now I have bux left over for 50 apps and 30 games and still have spent less than 10% of that Apple guy over there".
While there's little doubt that fragmentation does complicate development a bit, it should never have been perceived as some insurmountable issue. In this respect, the wide variation of Android hardware can be compared to the wide variety of hardware that runs Windows. Fragmentation is much worse on PCs and yet that hasn't hindered developers from releasing countless apps and games over the past several decades.
And a heterogenous project generally has fewer bugs the more systems it will run on correctly.
So, yes, it IS a problem. For some programmers. But generally the worst ones or the ones with nothing other than "churn out code and make quick profits, to hell with the customer base!" in their M.O.
There isn't a current phone OS these days that I don't find irritating. Not the iphone or even the nexus 5 they gave me for work. The last phone I had that worked how I wanted was an old blackberry.
These are the same issues mobile developers have been dealing with since BREW/J2ME. And the solution being touted in the article, "Testdroid", is just another remote hardware testing service like DeviceAnywhere, PerfectoMobile or half-a-dozen other providers. If you're a small developer, these can be very handy. If you're a more substantial publisher you're doing the same thing you did before... buying hundreds of handsets, flashing them with all the problematic OS and firmware versions, and doing a lot of annoyingly, repetitive testing. The one potential difference is that when the carriers controlled the 'store', they would end-of-life handsets over time so while the number of handsets would fluctuate, the total number of devices you had to support hit a plateau after a while. The same thing will likely happen with Android and iOS. Apple's always been pretty aggressive about leaving old hardware behind and I think Google will figure this out as well.
Fragmentation is a huge problem for various reasons from security being my main issue! Most Android phones are running old OS's. Most people don't know how to root a phone or update the phone to get the latest and in the Android world you can't even get the latest OS's on most phones and left out in the cold. So if there was a framework in the latest Android version that you built a game for its only available for what 2% of users who are running the latest OS. It may be higher now, but the last I heard it was 2%. iOS doesn't have some of the latest features mainly because of hardware, but at least you can get the latest supported OS on release day. All around for security and other reasons this is a good thing! Android for most users, buy a new phone to get the latest OS!
Every time someone asks if they should get an Android phone, I cringe. When I ask what they're looking for, they point to the phones that are free with multi-year contracts. When I explain what a Nexus device is, that they usually can't get it from the carrier, I see my first gears-grinding-to-a-halt look. When I explain how carrier phones may or may not get updates at any point and probably wont be for some time after they're releases, I see the slumped shoulders and look of defeat. When I explain that even the Nexus devices still aren't guaranteed to get the updates, but likely will, I see crying-child-with-skinned-knee tears in the eyes. When I explain how you can root... I get cut off.
One out of 15 people have come back and asked a few more questions. Half have come up to me within the last 6 months and asked why their phone doesn't see the update that their neighbor is showing them on their new phone and asked why.
Two I steered to Windows Phones because they don't use apps outside of Facebook and they are probably the happiest of the bunch.
Apple has shown that almost everybody can get an update at the same time, on the same day and people (admittedly non-technically savvy) expect the same thing with Android. Until that happens, I'm gonna call that fragmentation and say Yes, I'm afraid of Android fragmentation!
In my experience, it's been a drag, but usually manifests in nothing more than superficial issues, UI stuff, etc. Where it gets really frustrating is when a minor fix for one OS ends up destroying the UI on everything else.
But I've also seen stuff coming from iOS dev teams that suffer from the same thing...
Anyway, [revenue on Android is] a fraction of iOS revenue.
For one thing, rational numbers greater than one, such as 5/4, are still fractions. For another, app sales revenue doesn't tell the whole story. Due to Google's early failure to expand Google Checkout into all countries where carriers offered Android-powered devices, there is more of a culture of ad-supported software on Android rather than paywalls.
But, just because they're not the most profitable set of users, doesn't mean you can afford to ignore them.
You also have to take into account support costs. The cost of diversity of Android-powered devices (or "fragmentation" as detractors call it) is increased cost of supporting all configurations. Fewer configurations can mean lower costs, which in some cases may outweigh the increased revenue from Android.
Besides, writing app A for iOS and app B for iOS can reach more of these profitable "whales" than writing app A for both iOS and Android.
On Android, most Android users don't pay for apps. Either because they can't (Google Wallet isn't universal), or other reasons. And if Google Wallet doesn't support the country, Google only shows free apps.
True, visibility of priced apps outside the United States was a significant problem in the Android 1.x and possibly early 2.x days. But I thought Google had expanded the set of countries in which priced apps are available over the past half decade.
That's why I can get an update for the OS direct from Apple but I'm at the mercy of a carrier for Android?
I have an ASUS Nexus 7 (2012) tablet computer with Wi-Fi. My aunt has an iPad 2, also with Wi-Fi. Both get updates straight from the manufacturer. What "carrier" are you talking about? Do you mean an ISP?
There aren't too many enthusiasts out there rooting their phones to be able to use f-droid, and the other stores are useless.
F-Droid does not require root. It requires "Unknown sources", a checkbox that appears in the "Security" or "Apps" settings of virtually all Android-powered phones and tablets except about the first year of AT&T phones. And in what way is Amazon Appstore useless?
I assume you're trying to impress the hipsters by using recherché words like bespoke.
According to Android Developers Dashboards more than 92% of the present activated devices run some version of android past 4.0.3 (ICS), with the grand majority being Jelly Bean and Kit Kat devices. Thus if you develop for ICS or Jelly Bean you'll target most of the devices accessible by the Play Store.
I think what tends to be the greatest hurdles in compatibility right now are devices with either low ram, or low internal memory (since Kit Kat in several devices does not allow apps to get "moved to sd card" without rooting, effectively hampering stuff like HQ games and the likes...
How many Android phones have you had that didn't require you to either wait for your carrier to provide an update (and they never do), or give up and root the machine to install Cyanogenmod or whatever, or you just bought a new shiny phone to replace it? My HTC Aria is so hopelessly vendor-locked I doubt it's worth putting Cyanogen on it (the OTA upgrade from 2.1 to 2.3 never succeeded.) My newer Samsung did get upgraded to 4.4.2, but my Coby tablet running 4.0.4 isn't the version the manufacturer sells today, so I doubt they'll bother with customer satisfaction.
I haven't been able to Google up a good reference to Android documentation from Google that says how a regular user can upgrade their own Android version, as opposed to "Wait until your vendor ships an upgrade!"
Bill Stewart
New Fast-Compression-only CPR http://preview.tinyurl.com/dy575ks
We had interrupts, and "IRQ conflicts" and so on and so forth.
Village idiot in some extremely smart villages.
The assertion was that Android users didn't pay as often (based on... um... you heard Apple makes a profit?), but now it's shown to be the case that android doesn't sell because, for example, China blocks Google Play.
Is that the Android users' fault?
Fragmentation is an overhyped theory by the illuminati iTards