Android Fragmentation Isn't Hurting Its Adoption
Nerval's Lobster writes "Apple's developer Website offers a new, handy graph of iOS fragmentation — which, of course, highlights that the mobile operating system isn't fragmented much at all. A full 93 percent of iOS users are on iOS 6, the latest version; another 6 percent rely on iOS 5; and a mere 1 percent use an earlier iOS. Compare that to Google Android, which really is fragmented: some 33 percent of Android devices run some variant (either 4.1.x or 4.2.x) of the 'Jelly Bean' build, while 36.5 percent run a version of 'Gingerbread,' which was first released in December 2010 — ancient history, in mobile-software terms. (Other versions take up varying slices of the Android pie.) For years, Google's rivals have used the 'Android is fragmented' argument to hype their own platforms. But is Android's fragmentation really hurting the platform? Not as far as global shipments are concerned. According to recent data from research firm IDC, Android's market-share stood at 75 percent in the first quarter of 2013 — up from 59.1 percent in the same quarter a year ago. Meanwhile, iOS owned 17.3 percent of the market — compared to 23.1 percent in the year-ago quarter. Whatever the drawbacks of fragmentation (and people can name quite a few), it's clear that it's not really hurting Android device shipments or adoption."
The argument presented doesn't seem to actually grasp the point of the comparisons. On one hand you may be interested in market share. But when Apple presents the issue at WWDC they're not talking about market share. They are talking about what the actual platforms in use are and which ones are going to present the best area for developers to target. Three different versions of android are going to present three different APIs that app developers are going to have to deal with. On the iOS side you can target iOS 6 and know that you're be hitting almost the entire market segment.
But that wasn't the point of the graphic. The graphic was created by Apple to tell developers that they should target the newest version of iOS exclusively, if possible.
Now imagine making that argument on Android. Anyone suggesting that an Android developer should seriously target 4.2 exclusively would be laughed out of the room.
This article is missing the point. It was a dig at Android for hurting developers, not necessarily users.
...who's going to buy your app?
If you've got to target 6 or so major differences in versions—not to mention the differences in hardware—to reach the same percentage of Android users as you could reach in iOS users by targeting only iOS 6, that's got to say something about the ROI you can expect.
And that's not even taking into account the many datapoints showing that Android users buy something like half, or less, the amount of apps per device that iOS users do. (I don't have the numbers in front of me right now, but my memory suggests it was considerably less—like, closer to 10% than 50%.)
The reason Android's adoption is high is pretty damn obvious to anyone who's actually paying attention: the phones occupying the space in carrier lineups that, seven years ago, would have been held by dumbphones are now cheap Android phones. People buy Android not because they're choosing it, but because that's what happens to come on their phone...which they use almost exclusively to talk and text. (And maybe check Twitter and Facebook.)
Dan Aris
Fun. Free. Online. RPG. BattleMaster.
It has everything to do with being able to develop for phones. The article misses the point entirely.
As someone who develops for both, testing in Android *is* a pain in the ass. Developing in it is a breeze. The minor issues you run into on varying handsets is just a nightmare to deal with. The small variances because manufactures can't develop to API specifications correctly.
I question anyone who says it isn't an issue. Either you aren't doing development or you haven't built something complex enough to see the various issues.
I am the 1%!
In before everybody flips their shit. It is my main phone and I see no reason to upgrade.
If you're coding for the iPhone, you deal with iPhone 5 screen resolution and iPhone 4/4S. That's 2 screen resolutions.
;)
Try coding for Android, while having fun doing it
Or forked versions of Android such as the original Kindle Fire?
Apple's point is that their installed base (no matter what size or market share it is) has very little fragmentation allowing those who develop for the platform to target only the newest iOS. For developers this is a big deal.
Getting market share because you re selling junk like this the Samsung Pocket that still comes with Android 2.3 is not helping out anybody. The security implications of running this older OS is also an issue.
I am not advocating one side or the other. I am saying the OP countered the point Apple were making with a somewhat irrelevant argument.
Most of it's that the "fragmentation" in Android really isn't visible at the developer level. Sure you've got a lot of versions. But in general the API changes between versions don't break backwards compatibility: if you wrote code for API level 8 (Android 2.2), it's almost certainly going to run just fine on a device running API level 17 (Android 4.2.2). It mostly comes down to picking the minimum API level that supports all the features you need and writing to that. There's only a relatively few places where you need to explicitly handle differences, eg. coding for "If the device supports NFC then hook up the handlers for it, otherwise don't bother.". Most of those are just like that, simple feature tests: does this device have GPS, does it have a camera, and so on. Only a small minority are truly complicated to handle and need special coding based on the Android version.
It's a lot like cars. There's how many car manufacturers, and how many hundred different models? Yet when you sit down in one you don't worry about that huge degree of fragmentation. The controls will mostly be where they ought to be and the ones that aren't aren't safety-critical and aren't that hard to figure out, and while the shape of the fenders and design of the taillights may change the looks dramatically that doesn't really impact your ability to drive it.
I wish there were some type of test suite that phone makers could offer to emulate their products, just to see if things run, and report exceptions thrown. That way, if I write an app, I don't get a bunch of one star, "FCs on my blahblah" reviews, on some device that I've never heard about (such as BLU phones which are extremely popular south of the US.)
That way, if one device did keep crashing my app, I can at least stick a warning about it.
Android fragmentation isn't as bad as people point it out to be. If worried about it, just set the bar to 4.0 or 4.1 and call it done.
Another form of fragmentation is different hardware, including screen sizes and resolutions. While the variety of iOS devices and hardware is not as big as Android, I'm sure that the differences still cause headaches for their developers. And there's no doubt that Android suffers more from version fragmentation, largely because Android phone manufacturers don't have the balls to stop accepting money from the telcos and other parties for incorporating their shovelware.
With that said, I'm surprised that so many people have upgraded to iOS 6. When I had an iPhone, I got to the point where I stopped upgrading it because the new versions were too demanding for my phone despite the fact that my phone qualified for the update. Maybe Apple has gotten better in that respect.
There's less API versioning to deal with because Apple controls the platform and removes support for older devices periodically. Android will let you sell to customers no matter how long they've owned the device, as long as it supports the API calls necessary to run your app.
It's a shame that they cheaped out on the refund period, going from 24 hours when I got mine a few years back, to only 15 minutes at the present. 15 minutes is insufficient time to evaluate any application with any thoroughness. Some apps take longer than that to just run through the first time.
Android has 75% of the device shipments, but Apple has 74% of app revenue. Fragmentation may not affect device shipments, but it certainly seems to be affecting other things.
Look at it another way. Android has 75% device shipment marketshare. Apple has 18%. This means Google ships 4.17x as many devices. But (not knowing the Android app store marketshare), Apple has a minimum of 2.85x the overall app store revenue.
This means that Apple devices, on average, produce roughly 12x the app revenue. Is this because of platform fragmentation? Is this because of Apple's demograhics? I don't know, but dismissing fragmentation based purely on device shipment market share is shortsighted.
Apple still has feature fragmentation. Airdrop is going to be Iphone 5 or above only. I find it hard to believe an iphone 4 cant exchange files in the field.
Good-bye
If they could do a job at making platform-specific test suites chances are that they could probably just make their platforms follow the specs properly and you wouldn't need that test suite in the first place...
And this is somehow different from the PC market?
I can't recall the last time I heard anybody complaining about the PC market being fragmented. It's standard for Apple to use fragmentation as an argument against their opposition, because they want to make all the decisions for the end users. It's easy to eliminate fragmentation when you limit the option to things that you've chosen.
There are two axis for fragmentation.
The graph is showing the one that doesn't matter, since you can always target a subset of the APi which is supported by all the versions of the OS; that's the same for both iOS and Android, and it's just common sense code portability. The first product I worked on out of college was TERM software for a small company called Century Software in Salt Lake City, Utah, At one point, we had greater market penetration for async communications software on UNIX systems than UUCP, and UNIX systems came with UUCP for free. We also ran on VMS, BTOS, CP/M, MP/M, Mac OS, and half a dozen other non-UNIX platforms, as well as the 140+ UNIX platforms we ran on.
The secret to this success was to have as small a porting surface as possible, and that's eminently possible with both iOS and Android, although that type of design and coding tends to not be taught in colleges and universities these days, it's still eminently possible. It's just a matter of API contracts.
The other axis is hardware differences, and you can't ignore those for either iOS or Android. Those are the ones you can't get around with API contracts, because they touch on different device capabilities - the most important of which is screen aspect ratio, and that's the very thing that iPhone 5 broke, and it's the very thing the original iPad broke. Sure, there are other important parts to this; there the "I" in "I/O" as well, in particular, of all the sensors, there's keyboard inputs, but for the most part, that has fallen out to touch interfaces, which pretty much everyone other than Blackberry has agreed upon, and GPS. All the other sensors are much less useful to most apps.
If you talk to a Rovio engineer (and I have) on this issue, they effectively target a dozen iOS hardware platforms: to get the best user experience, and to get where they are today, with "Angry Birds" being the top selling mobile game of all time, they've had to adjust to aspect ration, resolution, and OS version. Being a game has meant having a much larger porting surface, in terms of OS interaction. And yeah, this means several dozen Android platforms, as well as their other platforms, but the difference between a dozen and several dozen isn't as large as the difference between 1 and a dozen.
Rather than pointing to Apple infographics, you'd be much better off pointing at the biggest success story in the industry, and doing as they do, rather than doing as Apple would have you do, since it's more important to be a top seller than it is to be portable, if the end goal is popularity with users and income.
To start as an iOS developer I'd need about $1700 - $1100 for an Apple computer, $500 for an iOS device and $100 for an Apple Developer subscription so I can publish.
Android (starting from scratch because my machines are too slow to run the emulator:Core Duo 2140) $500 for machine, $200 for Android Device and I'm DONE for $700.
I can live with fragmentation.
This really, really sounds like an Android fan who just can't stand it if Apple has something good to say about iOS.
Fact #1: Apple doesn't care about the market share of Android. Apple's market share in the phone market has been growing every year since 2007 when it started at zero. Today, cheap feature phones are being replaced with cheap smartphones. But if you don't buy a $600 iPhone but choose a $100 phone instead, Apple doesn't care whether that $100 phone is a Nokia feature phone or a cheap Android phone.
Fact #2: Developers don't care about market share, they care about the number of people who are willing to pay for software. Someone who pays $600 for a phone (iOS or Android) is much more likely to pay for software than someone who paid $100 (Android or feature phone).
The market fragmentation in itself is not the problem. The problem is that those on a three year old OS are not likely to buy any software. (You are free to assume otherwise and either write software that runs on the oldest OS and doesn't use any features of the newer OS, or put in lots of work to work fine everywhere). Which means the number of potential buyers is much lower than the number of Android users. It also seems to indicate that many new phones actually ship with an old OS.
If you are interested in software sales, the only thing that matters is how many people are going to actually *buy* your app.
The real question is how many dollars a year users of each version are spending on apps (and if developers are considering iOS, how the dollars per year compare with Apple users).
My completely anecdotal guess is developers can pretty safely forget v.2.x of Android without hugely harming sales.
The real question (and I don't have enough info) is should developers who are trying to make a living from apps forget about Android apps altogether? (i.e. is it like writing and selling Linux applications - can be done, but you don't do it for the $ alone)?
The PC market has hardware fragmentation, but you know what operating system you'll be running on. Mobile OSs change much more quickly.
Let's see. With Apple, you can target 100% of 17% = 17% of phone buyers, whereas with Android you can target 75% of 75% = 56% of phone buyers.
For applications, it never wasn't much of a problem.
However for games, the biggest problems I faced were the different configurations of the CPU (some included NEON and some didn't, which improves performance enormously), and the GPU ( OpenGL ES implementations were buggy depending on drivers, different texture compression schemes, etc).
Nowadays, everything is coming out with NEON and future phones are starting to support OpenGL ES 3.0, which is much more standarized (that will take some years to settle though). However, it's mainly supporting the 4 main architectures properly by checking the extensions: Tegra, Adreno, Mali and PowerVR. There are more (like the Rockchip ones, but those usually come with crappy hardware), but supporting those means that your app or game will run pretty much anywhere.
The challenge is probably dealing with different screen resolutions and aspect ratios, which wasn't a problem on iOS until recently (iPhone 5).
Sure. It'll be running Windows XP, Windows Vista, Windows 7, or Windows 7. If it's a Mac it'll probably be running some flavor of OSX.
All that 'fragmentation' doesn't seem to hurt the PC market too badly.
--Jeremy
Jesus was a liberal
> I wish there were some type of test suite that phone makers could offer to emulate their products,
There is... kind of... the pile of old Android phones most Android developers have accumulated by now ;-)
My pile: HTC HeroC, Samsung Epic4G, Motorola Photon, Galaxy S3 (current phone). Of the phones in the pile, only the Photon sits (battery removed) unloved and hated in a drawer, awaiting the day someone cracks that poor gimped phone's Motorola-permalocked 2.3.5 bootloader, breaks its chains & shackles, and lets it play Martin Luther King's "Free at Last!" exclamation while booting into Cyanogen.
Except that APIs like DirectX and the like smooth over a lot of the differences.
And people do complain - because they complain PC games are ports of consoles. And that ATI sucks because you need to install this beta driver to play this game. Or NVidia sucks for the same reason.
Hell, how many times have you heard that Intel graphics sucks? (And Intel graphics is the most popular by volume). Or how games on PCs have very little AAA titles, more indie games targeting lower end systems?
Of course, Windows itself doesn't actually add many new killer features - maybe by DirectX level, so you don't actually lose that much if you target say, Windows XP.
Thing is, Windows is remarkably unfragmented - a lot of differences are hidden away. Graphics? Intel. AMD. NVidia. It's remarkably easy to develop for them because you pick a card and use it. Windows? DirectX 9, 10, 11. They add spiffy eye candy the later you go, but unless you have a huge budget, you probably can stick with 9 because taking advantage of those features gets more difficult (and the need for fancier assets that cost more increases).
Screen size? Well, this one is interesting because PC gamers almost universally say the default FOV sucks and hack in their own values.
Beyond that, Windows abstracts it all - audio, keyboard, mouse, hard disk, network, etc. The PC is more monoculture now than ever. Hell, Android fragmentation can be akin to PCs when they ran DOS where you had dozens of video cards (with drivers that were completely different), audio boards could be somewhere in the memory map, etc.
Those were NOT fun days.
Why does it matter, as an app developer? If your program runs without a force close and doesn't use any specific features to an Android version, your app shouldn't care if it is running on the latest code.
The upgrade from Android 4.1 to Android 4.2 broke a lot of apps that act as drivers for Bluetooth input devices. It broke "Sixaxis Controller", a driver for Sony's Dual Shock 3 controller. That eventually got fixed. It also broke "Wiimote Controller", a driver for Nintendo's Wii Remote controller. That still isn't fixed.
That would be nice for dealing with all the different implementations of SQLite and whatnot, but a lot of the really serious problems have to do with quirks at the firmware or hardware level that may be difficult to get to in an emulator.
I believe the free version of Crittercism will let you detect that a specific device keeps crashing your app so you can fix it (or if you can't fix it - blacklist the device in the Play store) before you start getting one-star ratings from users.
Not all phone buyers buy a lot of applications. In the early days of Android, Android phones were sold in a lot of countries that didn't yet have Google Checkout. So developers had to make their applications free and ad-supported to serve users in those countries, and users have since come to expect the $0.00 price. So let's assume hypothetically that the average member of the 17% spends four times as much money on priced applications as the average member of the 56%. In such a case, the developer of an iOS app would likely come out ahead.
Doesn't matter that the screen is "small", or that the processor is barely 1GHz, if that, or it has 512MB of RAM, and ships with 2.3.
Server Name Indication (SNI) allows name-based virtual hosting to work on SSL sites. The only remaining major web browsers that aren't compatible with SNI are Internet Explorer on Windows XP and Android Browser on Android 2.2 or 2.3. Try visiting SNI Test or Pin Eight on Chrome, Firefox on desktop, Safari on recent Mac OS X, or IE on recent Windows. Then try visiting it on your Android 2.x device.
It's the same with targeting Android 4.0.x as the baseline. You will hit 75% of the Android market.
Not really. According to the Google Android Dashboard of June 3 targeting Android 4.0.x will get you 59% of the Android market.
Plus, that number is a bit of an overstatement. It only considers those who visit the Google Play Store. So a lot of Amazon Kindle Fires are not being counted. Many of those Kindles are stuck at Android 2.3.3.
Nobody is going to make an Android-exclusive software
"Nobody" is a strong word. Consider these three scenarios:
One could develop an Android-exclusive application and use the revenue to buy a Mac, an iTrinket, and a developer certificate on which to port the application to iOS.
One could develop an Android-exclusive application in one of the categories that Apple is known to ban.
One could develop an Android-exclusive application that requires a gamepad. The forthcoming Ouya game console runs Android, and for game genres that aren't point-and-click, an on-screen gamepad isn't really a substitute for physical buttons. Let me know when Apple even ships a standard game controller for its current iBaubles.
cool.
Note where Apple collects the stats from.... the app store. It stands to reason that users with older hardware are probably less active users and will be under represented.
Google's stats (Android Dashboard) come from the Google Play Store. According to their numbers targeting Android 4.0 gets you 59% of the Android market. Of course that ignores Amazon Kindle Fires and other devices that don't use the Google Play store. Many of those Kindles are stuck at Android 2.3.
As it was in the 80s no its not fragmented, no there are no clones, and yes your locked into there shit when you buy it.
fuck apple
and fuck all you sheep who cant get enough of it
Four years ago, the latest version of Android was 1.5 Cupcake. Since that time, things have changed dramatically. The products in that market are evolving extremely quickly, creating fragmentation whenever a generation of devices is left behind.
Eleven years ago, the latest version of Windows was XP. Since that time, Windows has had a few new coats of paint and the tools have changed, but targeting XP vs. targeting 7 with modern tools isn't particularly difficult to do in most cases, since the PC market is fairly mature, the products are fairly mature, and most of what people want from a computer hasn't changed in the last 11 years.
When the PC market makes big leaps, fragmentation can occur and has, in fact, done so on numerous occasions, the two most obvious examples probably being the jumps from DOS to Windows and from Mac OS 9 to Mac OS X, both of which caused a great deal of fragmentation at the time. Other examples are readily apparent, but what you'll note is that they primarily come from earlier days as the products matured into more stable forms. Such is the case with today's phone market. Suggesting that fragmentation is not a problem because other devices also have different versions to target is to ignore what those versions actually represent to developers and users.
You say that like it's a bad thing (from an app developer standpoint)...
Fun. Free. Online. RPG. BattleMaster.
Fragmentation doesn't even mean having multiple versions in the wild at the same time... that is normal. And it is fairly easy to support all devices that have the features you want, by using the older techniques for functions that don't require newer features.
Another thing that isn't "fragmentation" is devices having different screen sizes. Just like having different video cards doesn't mean your desktop OS is fragmented.
What would be fragmentation, and isn't happening, would be if the phone companies released their own android versions with different APIs. But that is the one thing that google doesn't allow. To that end, just to use the android dev tools you have to agree to terms that forbid you from fragmenting android, and forbid you from releasing competing dev tools.
As far as I can tell as an app developer, there is 0% fragmentation. And lots of bloggers who don't know what it is.
That's not really a fair time frame to choose. XP was never meant to still be in use. But, with the excessive wait for Vista and Vista being a flop, MS had to extend support for XP beyond the intended period of time.
And there's no particular assurance that older games will run on newer versions of Windows due to general instability and hardware manufacturers don't always QA their hardware for ancient versions of DirectX either.
And don't forget that MS does sometimes drop interfaces from DirectX or change them.
Thank you. Between this, NVIDIA's Shield, and the various clip-on controllers that already worked on Android, it'll eventually boil down to who wants to buy a $60 controller to play a $3 game.
I used to think like you.
Then I got one, and discovered that you didn't have to become a wild-eyed fanboi to appreciate its utility.
I don't even make or receive that many POTS calls--most of my voice calls are done using Skype on the laptop--but I really like being able to reach my daughter on the other side of the world via voice or video, anytime. It is also handy being able to check mail.
Maps + GPS has helped me out a lot a couple of times when I've got lost in unfamiliar cities where all the signs were in a non-Latin alphabet.
I'm also using my smartphone to learn how to read and write Chinese characters (see "Getting lost in places with non-Latin signage", above). This is an application I have a hard time imagining getting to work anywhere nearly as well on any other platform. (And it actually works heaps better with the smartphone form factor than it does with a tablet.)
And in an area with highly variable weather, it is very helpful to be able to check conditions/forecast/radar on the go.
Il n'y a pas de Planet B.
The article misses the point entirely.
I didn't RTFA (this IS slashdot), but I would say the iOS defenders are the ones missing the point. Apple loves to tout Android fragmentation as a huge shortcoming. They love to tout ease of use of iOS vs Android. They love to tout their designs and build quality. None of that matters. It didn't matter in the Mac vs PC debate. It doesn't matter now.
Apple is losing marketshare rapidly. They will soon be in the < 10% range, just as they are with Mac. Developers are abandoning the platform, just as they did with Mac. Apple's hardware is chronically underpowered, again. Apple is using a custom processor instead of what everyone else in the industry is using, again. Apple is going to be a niche player AGAIN because they made all the same mistakes they did before.
At least Android is based on Linux, unlike Windows before it. Face it. Apple has already lost.
THANK YOU. Only post so far mentioning the real numbers from the Dashboard and it's not even moderated...fantastic. Good call on Kindles - Nooks are behind as well AFAIK but I don't know what market they tap into.
That's not really a fair time frame to choose.
He chose it, not me. Take it up with him if he chose the wrong time frame to make his point.
But, with the excessive wait for Vista and Vista being a flop, MS had to extend support for XP beyond the intended period of time.
Yes, and what of it? Even if Vista had been a smashing success, none of my arguments were predicated on XP having a long life, so it wouldn't change any of them.
And there's no particular assurance that older games will run on newer versions of Windows due to general instability and hardware manufacturers don't always QA their hardware for ancient versions of DirectX either.
I already addressed the issue earlier when I said that it's fairly easy to target older versions with modern development tools, which it is. And older software not running on newer versions of the OS is completely irrelevant to what we're talking about. The issue at hand is how do people choose between multiple versions of an OS that exist contemporarily, and that's something quite different from what you're talking about.
And don't forget that MS does sometimes drop interfaces from DirectX or change them.
Okay...and? Have any of them caused major fragmentation in the Windows world? Clearly not, since what you've cited is extremely minor. Contrast that with the Android world, where the differences in just the last four years alone are dramatic.
That was my point: that Windows has had very little change over the last decade, while Android has had rapid change over a much shorter period of time, and that the reason for those differences is because of the disparity in the relative maturity of those markets. PCs are a mature market that has more incremental and gradual changes at this point, whereas mobile devices are immature products that are still being fleshed out and redesigned in new ways. As such, the former doesn't suffer from much fragmentation any longer, while the latter does if it's not handled carefully.
By the end of the year one billion Android devices will be in active use. You don't need to sell a huge fraction of those to make a good living.
Help stamp out iliturcy.
Hey, Android fragmentation makes it harder to develop apps that target every possible Android phone if you want to enable the cool new features on retro phones. But as a developer you're free to target whatever slice of the Android ecosystem you want to. No matter what level you pick, that's still a lot of pie. One billion slices of pie by the end of this year and growing at such a rate that Android devices may soon outnumber all mankind. What are you going to do? NOT develop for Android? I suppose that's a strategy.
Help stamp out iliturcy.
There are a number of services that rent this facility. testdroid is one that offers 200+ devices. Here is a nice Google search. The services are not free, of course.
I don't know anything about the testdroid service. Just trying to help.
Help stamp out iliturcy.
But what is the probability of a randomly selected app running on a randomly selected phone or device? I have an old ipod touch that sure is shiny, but the most advanced app I can find that will install on it is an egg timer. Is the fragmentation of android forcing devs to develop for the common denominator, improving compatibility for the users, or hurting it?
Nooks can now access the Google Play store, B&N added that recently.
To be honest, targeting different Android versions isn't that hard thanks to the support library.
Change is certain; progress is not obligatory.
If you target Windows XP and 7 you have over 90 percent of the market. On the Mac if you target the current and previous release, you have the vast majority of the market. still much less fragmented than android.
I run: Windows, OS X, Linux, FreeBSD. Just because you have a hammer, doesn't mean everything is a nail.
Yes, because PS3 and XBOX wireless controllers are $10 each, right?
Player 1's controller is $0 with the purchase of a console. Additional controllers are needed only for same-screen multiplayer, and Slashdot regulars such as CronoCloud have long maintained that same-screen is most useful to children, who have already become a minority in the market, and is dying out in favor of online. Besides, I've found it a lot easier to find used controllers for consoles than for phones. I bought the Xbox 360 wired controller that I use for PC gaming at this pawn shop.
I'd rather pay $60 for a game controller and $3 for each game [and] I'd be surprised if the majority of people (casual gamers) won't feel the same way, especially with portable games improving so much in quality.
I was under the impression that casual gamers expected handheld games to be in point-and-click genres, like Cut the Rope, Angry Birds, Fruit Ninja, Bejeweled, and the like. On consoles, conventional wisdom is that games requiring a specialized accessory (like Guitar Hero, DDR, and Wii Fit) have tended to sell well only when bundled with that accessory.
Let me rephrase it a different way: If you were to find an Android game on Google Play that could not be played to completion with just the on-screen gamepad, how many people do you think would ignore the "Controller strongly recommended" in the description, buy it, and give a one-star rating that it's too hard?
One could develop an Android-exclusive application that requires a gamepad [for the] forthcoming Ouya game console
All the android gamepads cost around that same price.
I wasn't singling out iPhone vs. Android as much as iPhone vs. 3DS/Vita. The Ouya console includes one controller. And even if you limit it to phones and tablets, if you happen to own an Xbox 360 controller or any HID controllers for the PC, those work with an Android 4 device through a $2 USB OTG cable.
The reason there's so much fragmentation in Android is that people are still buying 3 year old phones because having a shitty smartphone is better than having a dumb phone. That's the same reason Android users pay less than iPhone users for apps.
Those people aren't going to buy the apps developers make; they're going to be fine using whatever is on their phone and never thinking anything more about it.
Keep on knockin'
https://robbiecrash.me
This argument is FUD and always has been. It was a myth made up by marketing trolls for Sony during the last console war trying to justify why their console wasn't selling as well as the XBox 360 for a long long time.
The fact is you can't just "stuff" a channel with millions of units, because retail wont accept it. They're not just going to accept being a storage repository for all your devices you can't sell, that doesn't, and won't happen.
You may be able to get away with stuffing by a few thousand units, but retail corporations have a pretty easy time of telling what does and doesn't and is and isn't selling/going to sell because of the data mining they all engage in nowadays.
Try and shuffle even a million extra units to a retailer to try and pump your "shipped vs. sold" stats and they'll laugh in your face and tell you to take them straight back.
In reality, shipped and sold are basically identical. Retailers stock pretty much only what they can sell with very little tolerance beyond that. They don't want unsellable products in their stock rooms because it costs them way too much when they could be stocking sellable products instead.
The other issue with the whole "shipped vs. sold" myth is that most companies who say they've "sold" x number of devices are going off their shipped figures anyway, because there's generally no feedback mechanism by which they can tell whether their product has actually sold when they ship it beyond looking at how many devices retailers are willing to let them ship.
So in practice shipped and sold are the exact same thing. If someone says they "sold" x number of devices then unless they're selling direct and there's none being sold via retail then they're lying to you and have no idea what they've sold, only what they shipped. If someone says they shipped x number of devices, then they did, and those devices will more often than not be sold in very short time, otherwise they'll be returned to the manufacturer.
There are smaller retailers that aren't so efficient at ensuring their shipped and sold figures remain pretty similar, but they're such a minority as to be negligible which is why in general coupled with the fact sold normally equals shipped anyway you can safely assume that shipped ~= sold. There is no big channel stuffing multi-million unit conspiracies going on as Sony pretended with the XBox 360 originally, turns out those boxes were indeed actually selling.
"I question anyone who says it isn't an issue. Either you aren't doing development or you haven't built something complex enough to see the various issues."
Please consider that there may be a 3rd option - they're simply more experienced and competent than you are.
Developers such as Win32 API programmers have been dealing with this exact issue for about two decades now, it's trivially dealt with because to any developer with even the slightest bit of experience this sort of problem is run of the mill, a relative non-issue. The whole PC market was built around much more numerous combinations of hardware and software yet was still massively more successful than the likes of Apple's one track ecosystem precisely because developers did learn to deal with it, and more often than not it just means ensuring your software architecture properly abstracts what it needs to abstract.