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
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.
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.
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 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.
So are you supporting the Windows Phone platform?
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?
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.
You don't need root to use F-Droid.
From day one Android has had a system of screen grouping based on physical size and DPI. You produce a UI layout for each group, and Android loads the appropriate one for the device.
https://developer.android.com/...
comment first, facts later. http://chem.tufts.edu/AnswersInScience/RelativityofWrong.htm