PhoneArena’s Micheal H. addresses an article at Forbes:
The conclusion may sound redundant at this point, but it is fairly simple: if you want to have a discussion about Android and iOS (and there are plenty of incredibly interesting discussions to be had), think about the issues you want to cover, and break each down on their own terms. Trying to bundle arguments under and umbrella term like “fragmentation” is just lazy and it holds very little meaning at this point.
At the end of the day, I always get the feeling that the people yelling the loudest about “fragmentation” are people on the sidelines, who’ve never coded for Android at all. That’s not to say it’s not a problem at all – it’s just to say that it’s an area where the competition does a better job. Android’s device diversity certainly creates additional challenges for Android developers, much in the same way that Apple’s inconsistent App Store policies creates additional challenges for iOS developers.
Each platform has its weaknesses, but none have been as aggressively made larger than it really seems to be than Android’s supposed fragmentation. Unravelling this positive feedback loop among these bloggers should make for fascinating material.
Only Apple fanbois care about Android fragmentation.
I’ve noticed this term, “Apple Fanboy” being bounced around a lot in recent years. The irony is that it’s mostly used by people ingrained, or obsessed, with Windows and/or Android. IMHO it’s just “fanboys” calling other “fanboys” “fanboys”, just because their preferences are different to other peoples.
Not at all. I couldn’t care less about Windows or Android, but I do frequent a few tech sites, and Apple fanbois are a special kind of corporate fans who try to sell their brand at every opportunity. They practically destroyed Slashdot after OS X made Apple some geek cred.
I suppose Nelson is the equivalent Microsoft fan, and he’s fairly unique.
Ahem…
Most “Windows advocates” tend to be developers or work in IT in some other capacity, so their preferences are based on technical knowledge – rather than mindlessly following technology fashion trends.
In contrast, Apple fanboys are more like obsessive sports fans with an undue emotional attachment to their favourite team – to the point where they believe “their team’s” success somehow reflects positively on them. Actually, no, that’s unfair to regular sports fans – Apple fanboys are more like obsessive WWE fans who constantly spout the catchphrases of their favourite wrestler.
Only people who work on IT and have more than basic knowledge are windows advocates? That is blatantly untrue.
For people who actually care about what OS they use enough to have discussions about it, there are more Windows “fanboys” with no knowledge or interest in technology than there are apple fanboys.
Granted, that is because there are many more actual windows users than OS X users but still.
Also, this might be my unix bias showing but I find the usage of the concepts “Windows advocates” and “people who work or know on IT” to describe the same group weirdly oxymoronic.
Edited 2013-12-15 18:58 UTC
Aaaaaaand it’s also not even remotely what I said:
Hint: you might want to look up the meaning of the words “most” and “tend to” before you embarrass yourself any further. Or if that was your attempt at setting up a strawman, then trying being a little obvious about it next time.
Bull. The typical Windows user doesn’t give a damn about their OS, if they even know what an OS is or which one they use. You don’t see Windows users acting as if the OS they use is a character-defining lifestyle choice, or falling all over themselves to mindlessly-parrot marketing slogans.
That’s OK, admitting that you have a problem is the first step to getting help.
So:
People who like Windows are “advocates”, technically knowledgable, and calmly rational.
People who like Macs OS or iOS are “fanboys”, “obsessive”, and similar to people who spout catch phrases from celebrities.
Yeah, you sound unbiased.
Whoops: just caught the BallmerKnowsBest nickname. Sorry to have fed the troll.
Edited 2013-12-16 02:10 UTC
*Sigh* It’s really not that difficult, at least TRY to keep up.
Techies/IT folk are the only ones who care enough about Windows to bother advocating for it, and most of them have more sense than to descend into fanboyism – because they realize it’s a tool, and not a pseudo-intellectual status symbol. Even then, “advocacy” is mainly limited to countering the endless stream of lies and irrelevant BS from the “Anything But Microsoft” anti-fanboys.
Whereas most Apple cheerleaders are decidedly non-technical, the type of people who think that it’s sensible to feel “passionate” about a software product from a multi-billion dollar multi-national corporation. To the point where the less technically-literate they are, the more fanboyish they’re likely to be – and Apple has been very good at deliberately manipulating them with things like the “I’m a Mac, I’m a PC” ads. Sure the ads are overly simplistic & filled with inaccuracies (nothing new for Apple), but they’re specifically not targeted at people with the wits to realize that – they’re aimed at people who will accept & repeat “talking points” without question. And with that demographic, Apple’s marketing (evidently) works perfectly.
Contrary to your lazy Strawman interpretation, I’m not saying that ALL Apple advocates are fanboys (though the reverse holds true, of course). I’m sure there must be at least one Apple advocate who isn’t also a mindless fanboy, like…. um…. oh, and there’s…. no, wait, sorry… hmm….. OH! I got one, Douglas Adams! I’ll get back to you if I can think of any who are still living…
It truly is overwhelming to be in the presence of a master-debater such as yourself.
Lol, thank you, I hadn’t noticed his nickname either and I was about to reply again, close one.
There isn’t a shred of evidence to support that statement.
Riiiiiiiight, no evidence…. well, except for the majority of your posting history here & elsewhere, and the posting histories of MrHasBean, jared_wilkes, leos, frderi, etc…
I kinda sense this is a troll post based on your username. But I’m taking it seriously, to point out something not obvious.
If you do work in IT, and by IT I assume you mean, Enterprise Desktop management, then you really don’t have much choice but to deal with Microsoft. Unless you are the head CTO honcho who actually makes decisions about what technology the enterprise will use, you can’t really start moving the company away from Microsoft. A kind of stockholm syndrome sets in due to the Lock in and job security. If the company switches away form your core talents, you need to retrain.
So far from being a more informed individual basing their opinion on objective facts, I’d consider someone working in this environment to be a heavily biased individual.
There are Windows advocates and there are “Windows advocates”. The second bunch are fanboys that should get more experience in the field of IT.
Also, current generation of Microsoft fanboys are as annoying as Apple fanboys were at one point. OSAlert is rather civilized, compared to other places… where developers are not the dominant demographic. And does the persecution complex shine there… Oh MY…
Exactly. my fiance has an Android 4.3 phone while i refuse to let go of my ROMed 2.3 slider and….it makes ZERO difference.
She sees a program on mine she likes and she can just download and run it and since neither of us are heavy mobile gamers (I save it for home and my monster PC, her idea of gaming is ninja kingdom on FB) the fact that her phone has a little more “kick” matters not at all.
I think what changed everything was the Play store. before that yes it was a bit of a PITB to see what worked and what didn’t but now? Not a bit, the play store knows what phone I have and what I can and can’t run so i really don’t have to care what anything is compatible with. From what I have been told Google has done well with having APIs that “degrade gracefully” for want of a better term, so its really not hard to support us old 2Xers along with the new 4Xers.
Now if i could only find a reasonably priced Android 4 slider that worked with straighttalk..
Double edged sword. I have a Nexus 7 and a Nexus 4 and the Play Store quite blatantly restricts one or the other frequently. Sometimes it boggles my mind. The BBC iPlayer app, as an example, was not available for the Nexus 7 for a couple of years, but the APK would install absolutely fine if flash was also installed. Even when they switched away from flash video, it still took 6 months to become available.
But unlike Apple you COULD just download and install the APK, yes?
To me that is the biggest difference, the fact that one does have choices. I didn’t like the default Android on mine so thanks to the code being out there I was able to download a ROM that frankly ran rings around the default install AND opened up features that they don’t even offer on this phone like having Flash installed and having wireless tethering.
If the default isn’t cutting the mustard I’d suggest looking at the ROM community, just stay away from the AOSP and Cyanogen mods as they are a bit too generic. But I bet if you’ll take a little time to look around you’ll find a ROM that is faster, cleaner, has less bloat and runs better than the default install. good luck!
Not a fair comparison. Yes, but if the app was in the Apple app store, it would have installed on my device. Apple gives you an “all or nothing” so long as your OS supports the app. Android is driven by vendor lock in (Samsung having exclusives on a bunch of apps, like Adobe Photoshop till recently and Wacom’s Bamboo app.) In the case of the Bamboo app, even if you have the APK, it doesn’t actually work on many non Samsung devices.
No offense, but by this statement you also made it quite clear you are not a developer yourself.
The key reason developers care so greatly about “fragmentation” is because developers target minimum API levels.
For example, due to the massive amount of people that still used Windows XP for eons, the typical Windows desktop application could not really target Windows Vista+ features without cutting off a significant section of the market.
In HTML terms the equivalent is that a website has to support IE 9, which means half the CSS3 and HTML5 features remain out of grasp until it dies off.
And for phones if 25% of Android phones still use old versions of Android, then the base API level targeted has to be that much lower.
Yes, in all cases above you could code things in a way that you can access them anyway, but this significantly increases development complexity and time. Features that can be officially unavailable in an API does not at all have the same kinds of costs.
Did I not specifically state that it is, indeed, a problem?
However, from everything I’ve heard from actual Android developers, it’s not nearly as big a problem as certain people want it to be. It’s just an additional challenge, inherent to the platform. Every platform has challenges like that, that are specific to the platform. E.g., for iOS, you have to learn a language nobody else uses, and you have to deal with Apple’s inconsistent and often vague App Store policies. Problems Android doesn’t have.
See what I mean?
Yes, but you also seemed to imply that you agree with the article that we should stop talking about fragmentation and compare feature availability instead. If this is not what you meant, then I’m sorry for placing words in your mouth.
My main reason to object to his reasoning is that fragmentation is a real developer problem (on all platforms) and the problem is not really so much about specific features of a phone, but more how languages (in this case Java) and APIs interact.
At compile time, a program targets a specific API version (i.e API level 15, .Net framework 4.5, Windows 6.0, etc) and will not work below that version. Anything in the version chosen will be trivially available (just call the functions, etc.), while anything in a newer version now requires explicit work to access. This is why it is so important for a developer that you can pick as new a base API version as possible.
Truth be told I’m not enough into Java and Android to say how difficult it is there. For Win32 things it is a PITA with manual DLL loading. And yes, iOS has a long list of other problems for developers.
While we are at the subject of fragmentation, notice how high iOS 5’s market share has been until recently. This shows that fragmentation is clearly not only an Android problem. iOS developers don’t want to lose 25% revenue either, so they have to target some old shit too!
In Android most of the important stuff that doesn’t require firmware changes, is available for older versions via the Support Library.
http://developer.android.com/tools/support-library/index.html
Anyway most of the stuff is only important if you really want to target only pure Android apps. When coding hybrid apps, lots of stuff tend to be abstracted by the middleware anyway.
Yes, unless you need e.g. DownloadManager functionality below 2.3, or plenty of other stuff. Granted, the support library is incredibly useful, and for a lot of things not included there’s alternatives (e.g. ActionBarSherlock), but it is still far from perfect….
A lot of the people complaining about it are real developers so which group of Android developers should you believe? The ones who consider it a big problem, or the ones who consider it an inconvenience..?
Obviously any platform has issues to deal with. However, complaining about having to learn a language is silly considering you have to do that with any platform if you don’t already know the language(s) used. Android is no exception. Next, you claim Apples App Store policies are inconsistent. However, just recently the CyanogenMod installer was removed from Googles Play Store even though it didn’t violate anything. It appears that on Android, you can adhere to policies but still be rejected based solely on Google not liking your app. Is that not inconsistent? Android is no exception in this regard either.
Developers for what platform, primarily? The most vocal posts about Android fragmentation come from Apple bloggers – who all have agenda, of course.
Except, Java is taught in virtually every compsci course at university. On top of that, Java is used everywhere, whereas ObjC is Apple-only. Nobody else uses it. So no, it’s not the same at all.
Except, even if you do get removed fro Play… There not only are several other Android application stores, but every Android phone can sideload applications – it’s a built-in feature.
Apple blocking your hard work? you’re fucked. That’s it. Android is *entirely* different in this regard.
There are several places Android devs congregate and fragmentation has been discussed on all of them. I’ve seen some of them play the issue down, as you’re doing. But, I’ve also seen some of them express real concern so to make a blanket statement saying only Apple guys think it’s a real problem is simply not true.
It doesn’t matter where Java is taught. If you don’t already know it, you’ll have to learn it. If you don’t already know ObjC, you’ll have to learn it. Who uses what is irrelevant to somebody who doesn’t already know these languages. So yes, it is the same (to them).
We aren’t talking about circumvention and sideloading, we’re talking about inconsistency in policy. As already pointed out, Android shares that issue with Apple and is not void of it as you suggest.
Btw, you can sideload to i* devices too. It just requires jumping through a couple hoops. So something being blocked in Apples App Store doesn’t mean it can’t be installed anyway.
To be entirely honest, you’re fucked either way, as not being on Google Play pretty much reduces your audience to a pretty small one, regardless of say being on the Amazon store or any of the others.
Sideloading sounds great too, except it requires going through steps that represent dialogs to that most average users (the biggest bunch of users, that is) find fairly scary….
Not trying to say that being blocked by Apple is better, but being blocked out of Google Play is not quite as insignificant as you are painting it here…
You are not nearly as fucked. If your App is rejected from the App Store (or WP Marketplace for that matter) this reduces your audience to basically yourself and your peer developers.
If you are rejected from Google Play, your audience is reduced by maybe one order of magnitude. Chinese App stores have combined 700 mln app downloads per month, compared to 2500 mln for Google Play. Then there’s Yandex, Amazon, F-Droid which maybe clock in 1% of Google Play each (I don’t have exact figures), which is still nothing to scoff at.
And you tend to over simplify things to much.
There is a difference between the basics of doing Object Orientated programming with a Language and producing a commercial application.
I expect most developers that known one OOP language can pick up the basics of another in a few days.
What makes the difference is knowing the platform inside out, which takes a considerable investment in time … and it isn’t just about always learning “how I do X”, there is a set of mental hurdles on conventions, binding data, packaging and about a million different other things that are just enough to screw with your mental model enough to make you confused.
Indeed but on the other hand…
You only really have to deal with two OS’s: Android and IOS. Within each the conventions, packaging and bindings etc stay mostly the same over time and only rarely change in drastic ways.
Complaining about having to support this is prissy whining really.
It depends how big your team is and how much other stuff you gotta do.
Nonsense like this is where it becomes obvious you don’t know what you’re talking about. Anyone who has ever hired a developer knows that what language developers learn in school is almost irrelevant. A new grad will not be particularly more useful in Java than in C++, even if their courses were based on Java. Programming skills are 90% learned on the job or on your own time, not in university.
This 100 times.
I did mostly Java, a bit of PHP and PL-SQL. Don’t use any of that now.
PL/SQL being more or less ADA. Well, at least it was in the Oracle 8i days.
I’ve long since forgotten it. I use use the “Data Mapper” pattern for database access that is outlined by Martin Fowler for most database access:
http://martinfowler.com/eaaCatalog/dataMapper.html
I try to avoid hand written SQL whenever possible.
Ironically this is what drove me and with me my family over to Android is the fact that unlike Apple its the most “Windows like” with regards to freedom for the user.
Just like a Windows desktop its trivial to change the OS or mod it, we can install apps from anywhere by simply checking a box, heck with my fiance’s new Samsung all you had to do was hold down 2 buttons during boot and it had its own version of CWM built in for backing up the OS and installing new ROMs!
The Apple fans can try to pretend its similar but IRL they are about as different as a PC and a console, one is YOURS, you can do whatever you want to it, the other is strictly controlled by the corp. THEY decide what you run, THEY decide how long it will be supported, don’t like it? Tough, your only recourse is to buy a new one when it comes out.
So at least to me that is the big difference, I get to decide what runs and from where, in point of fact I didn’t even have my phone a month before i ROMed a new version, took less than 10 minutes and I was up and running with frankly a better Android than what came with it. If having everything dictated to them by Cupertino makes ’em happy? More power to them I say, some people enjoy having a nice safe walled garden to play in. But I’d say from the adoption numbers that there is a lot more folks that like the Android way of doing things.
Ae you suggesting all, or at least most, Android users bought an Android phone because they want to install custom ROMs or have anti-Apple feelings?
I’m suggesting what matters most is advertising, price, special offers and what friends are using.
I’m willing to bet most Android users don’t even know there’s a Linux kernel inside, just like most iPhone users don’t even know what OS X is or how to pronounce it. A lot of people don’t even know what model phone they have.
Most users of mobile phones, operating systems, cars and a lot of other things don’t know a thing about it. Only a very small group does and a number of those think they know, but they don’t. The majority doesn’t care about anything technical or ethical, they want something that works. If it doesn’t they buy something else.
It depends how much time you have and resources as to whether it is a problem or not.
Also when I used to be forced to work with older JS engines and older versions of .NET it wasn’t a problem working with them until I worked with JS engines and the newer .NET frameworks.
I am sorry to burst your bias bubble but you have to look at the economics of development, rather that random factoids.
The reality of Android development is that it is significantly more costly then iOS development if you want to offer a good experience for the majority of Android users.
It’s not just a function of the different Android version it’s also different screens, different device performance, storage, and so on. The testing alone is several times more resource intensive on Android then it is on iOS.
Apple’s App Store policies don’t impact 99.9% of developers and for most skilled C/C++/Java developers the learning curve of Objective C is dwarfed by the time it takes to develop a level of competence with the SDK as a whole ( on either Android or iOS ).
What Android does have going for it is the superior integration with Google’s services; the Android SDK’s for those are much more mature and full featured ( compare, for example, the YouTube iOS SDK to the Android one ).
Got science to back that up?
It would be obvious if you have done any sort reasonably well managed software project.
Edited 2013-12-16 08:09 UTC
So no proof.
Good.
The fact is that if there are more different configurations to support you gotta do more testing, which costs more money and requires more effort.
That is a hard fact that you learn from experience. For a software engineer, arguing this is like being asked to provide data that the sun rises in the morning.
If you are unwilling to accept that, well you can remain ignorant for all I care.
Edited 2013-12-16 10:03 UTC
I never contested that it is more work to support all Android devices than it is to support all iOS devices. You are arguing something I never posited. All I am arguing is that the problem has been way overblown by certain bloggers.
The original claim I’m arguing in this thread is this one: “it is significantly more costly then [sic] iOS development”. That is a very hard claim, and I’m asking for proof – a completely valid request. I think this claim is totally and utterly bullshit, so that’s why I’m asking for proof.
Just to reiterate, since apparently nobody read the blurb and any of the following comments: nobody here is arguing that Android’s more varied device spectrum does not create additional challenges. Nobody.
Edited 2013-12-16 10:24 UTC
You cannot really discuss one without discussing the other tbh. If you say “I believe it is overblown”, we have to discuss the validity of whether it is more difficult to support due to the claim.
Several people including myself believe that it maybe more significantly difficult to support and maybe it isn’t all hot air, based on our experience on working on past projects and some of your reasoning is flawed on thinking it isn’t that much of a big deal.
You won’t get any proof because it maybe impossible to measure:
* A lot of organisations don’t have any effective time management (even large ones).
* Depends on the number of devices you are willing to support.
* The complexity of the application.
* The quality of the specification (knowing what the f–k you are supposed to build actually helps, most specification I have been given in the past are quite poor).
* Existing infrastructure you have in place (if it connects to a third party).
This is ignoring a lot of other facts, which you would be aware of if you have worked on a software project.
There are just too many factors to compare between projects. You compare case studies of popular apps on both platforms, but then it still very subjective.
As a software engineer, I can tell you based on experience I would think that an app of significant complexity development would be adversely affected by platform fragmentation and that is the best you are likely to get from anyone.
We did. We just happen to disagree what additional challenges entails and your reasoning (for doubting them other than “bias”) is lacking some key experience of software engineering and experience of working on a project. When correcting you don’t want to seem to listen.
Edited 2013-12-16 10:56 UTC
There is nothing in your post indicating that you disagree with me. Nothing at all.
I just think it’s silly to focus on one specific challenge in Android development, blow it up to insane proportions, and claim it makes Android development “significantly more costly than iOS development” without taking into account that every platform has its challenges that lead to increased costs.
And all this, without providing a single shred of actual, quantifiable proof. I’m sorry, but if you make grandiose claims like the one above, *you need proof*. Without it, it’s just baseless nonsense.
And, just to reiterate once more: nobody is claiming Android’s varied device landscape does not create additional challenges other platforms lack. Nobody. I’m just asking for proof that it makes Android development significantly harder or more expensive than iOS development – as a few vocal people claim. If this really is such a huge issue, quantifiable proof should be abundant. The fact that it is not says it all.
Edited 2013-12-16 11:18 UTC
I am not disagreeing with you. However what you have based your reasoning on for at least some things is just incorrect, in the comments thread and they are intrinsically linked to your statement in the blurb and you seem to just ignore it.
Some could show you cases studies that prove either is correct. It is impossible to prove.
Thanks for ignoring what I said.
Edited 2013-12-16 11:47 UTC
Umm. Well, the BBC has an Android team 2+ times the size of their iOS team. I would call that ‘significantly more costly’ but perhaps you have a different definition.
It doesn’t matter, he doesn’t want to listen.
I am working for a company which develop control access solutions for TV companies worldwide.
A team is currently working on a video streaming solution for PC and mobile devices. They target both iOS and Android obviously.
What I can tell you is that while it is not always easy to make thing work on iOS platform, the Android platform is a nightmare for the team, mostly due to hardware and OS fragmentation and different behavior depending on the hardware model you use. While testing the iOS solution on a handful of devices is sufficient, it is practically impossible to test the Android solution thoroughly because of the lack of predictability of the platform.
Now, you can argue that is is mostly a matter of hardware fragmentation and not OS fragmentation and it would be probably correct, but as a platform, Android fragmentation is not a thing made up by Apple fanboys.
This is only a use case and a single example and you are free to think that it is an exception.
Edited 2013-12-16 09:03 UTC
I am in the same boat. This is very simple question: how the hell do I stream video to android devices? HLS would be great, but it works properly only in 4+. And by “properly” I mean very basic support – for example it will not ignore non-supported streams based on CODECS field (this would really help). RTSP ? Non-adaptive and some mobile networks block it. Then you have differences in device capabilities – what bitrate they support, what h264 profile and level. And let’s not forget manufacturer-specific bugs – for some reason every manufacturer feels great need to replace some media libraries/parts of system player. So no, complains about fragmentation do not come only from Apple fanboys.
Your example is a great one, that shows that Apple has the best tools for media(video and audio) processing.
It is, however, an exception not the norm. Doing media driven development is not the biggest(not even close) segment of software development(be it mobile or desktop).
Let’s just look at testing alone.
On iOS we test on two devices formally ( iPhone 5s, iPhone 4 ) and a third on cursorily ( iPhone 3 ). On Android we test on 8 devices formally and 4 devices cursorily.
Now consider that the reason that we test is because there will be behavioral variations and we’ll need developers to fix them. Truth be told we don’t actually fix everything, in some cases we just detect the specific device/os limitation and we disable the feature.
You can appreciate the sum total incremental cost here, right? This is the ‘cost’ of OS/device fragmentation to developers.
The BBC’s Android development team for its iPlayer App is almost thrice the size of its iOs team: http://www.bbc.co.uk/blogs/internet/posts/Video-on-Android-Devices-…
A team around thrice the size does suggest significantly higher costs.
Note that this has little to do with OS fragmentation – it’s because of the complexity of having to develop for a wildly different range of hardware configurations. But that is part of the challenge of developing media-heavy apps for Android.
Science to back it up:
http://xkcd.com/54/
The majority of Android users are on a stable ICS API that is mostly unchanged up-to KitKat.
That is not true. iPhone is no less ridiculous in those cases. iPhone3GS, iPhone4, iPhone4S, 5 and 5S perform differently. Don’t be so surprised to know that there are a lot of 3GS users out there still…
iOS SDK is easier and the development platform is cleaner, but in the end you still code less than you tinker here and there. You don’t tinker on Android any more than you would on iOS. But that’s the dirty truth about all and any platform, language or hardware… for all we bicker which language is better to develop in it’s all basically the same.
You hear what you want to hear. Fragmentation is only discussed because developers voiced their frustration about it. Obviously the statement that “everything you heard” is that it’s not a big problem is nonsense.
What would you say is not “just an additional challenge” then? Let’s say developing for Windows Phone caused angry bears to attack your home. That is just another challenge of working on the platform. Since you are not a developer you have no idea how to weigh the severity of issues, I’m not sure why you’re trying.
Interesting. I guess my job, which is to manage a team that writes C++ apps for iOS and Android are just my imagination. And the fact that our compatibility problems are almost exclusively on Android are also my imagination.
Such as?
Oh yeah I forgot Cyanogen’s installer is still on Google Play.
Yes, I see you are not a developer.
Yes… That is why Google stopped reporting all reachable device statistics for developers and focuses on the devices that are being actively used with the Play Store.
However, that is not a big issue for everyone. Snapchat does not see anything that is below 4.0 as a target… and it works for them. It’s a question of what works for you. Some companies don’t release anything for any other device than the latest iPhone and are not bothered…
But that is the benefit of having a giant install base that beats any purpose of targeting the whole install base.
That’s not really the case. If you develop web sites you typically develop for modern browsers and then use polyfills to account for missing features in older browser. It’s more work but it certainly doesn’t significantly increase complexity or development time as the difficult part is already done by the people who develop the polyfills. You can get quite far by just including respond.js and html5shiv, 2 lines of code, when porting a responsive HTML5 website to IE8 (yes, I’ve done this a few times).
For android the situation is better because google maintain the android support libraries which provides several new APIs for older versions of Android. So you can target a more recent API level and still have the app run on older devices. And it’s officially supported by google and not particularly difficult to use.
Somethings just don’t work:
* Dynamic element binding with on() and jQuery.
* Too many polyfills the page just slows to a crawl.
* Some polyfills only work in specific situations e.g. CSS3PIE if you want a box shadow and gradient you end up having to add divs because the older IE engines can only add on VML behaviour.
Again more versions of the browser means more development time and testing, even though we are lucky enough to have people to work out most of the hard stuff for us.
As you may know, rockstar games recently released GTA San Andreas onto iOS earlier this month (
https://itunes.apple.com/gb/app/grand-theft-auto-san-andreas/id76369…). What’s interesting to note is their minimum required iOS version. It’s 4.3, a version that originally shipped with the iPad 2 nearly 3 years ago. And i’m sure this was a concious chouce by Rockstar to allow them to access the full range of debices that their game could support. Of course, Rockstar is touting their support for iOS7 game controllers and better graphics on recent generation devices, but the fact remains, they’re still developing for a platform that is 3 years old. If rockstar can incorporate backwards compatibility like that, whilst still supporting features in the latest iOS, i see no reason why it should be different for other developers. Obviously, i know Android is a different platform with different APIs, but i’m sure as hell that the same could be achieved there.
It is achieved all the time. Most popular applications run on 2.x.
Games are different than regular apps. There is relatively little platform-dependent code in GTA.
The Support Library ( http://developer.android.com/tools/support-library/index.html ) makes it relatively trivial to target older Android versions while still using newly-released features and patterns for non-game applications.
While it may be true that most popular apps are available down to 2.2, there are quite a few apps, especially from smaller developers that are 4.0+. Which is understandable really since that was a major version jump and covers most devices.
I have an older tablet on 2.2 that I use as my alarm clock, and there are a ton of nice alarm clock apps out there that will not work on it. I’m stuck with Alarm clock plus for the foreseeable future.
Backwards compatibility is and always has been a complicated affair and cannot be reduced to soundbites like “fragmentation” etc. One needs to consider each API (and often each function) and piece of application functionality that depends on it. Frequently, it’s possible to implement a run-time switch that either turns that feature off, or reimplements it trivially with reduced performance/quality. If all else fails, there’s always the possibility of e.g. shipping private copies of your dependency libraries and loading those into the app, so that everywhere you go, you bring your tools with you (self-contained execution environments have only existed since forever…). Moreover, while the Apple environment is good at pushing out newer versions of system software, they too have a lead time that needs to be considered by app developers. Ultimately, then, the difference between iOS and Android is in the time frame that developers need to consider, not in whether or not the problem exists in one and not the other. As an addendum, it is worth noting that not everything that is shiny is great. Apple has also had its fair number of bugs (e.g. CoreData iCloud integration in iOS 6) in new APIs, so that further limits developers willingness to jump to the “latest and greatest”.
New APIs simply need some time before they mature and become widely adopted, OS release cycle being merely one factor in it. Big whoop.
I just can’t understand why people couldn’t talk about different OS without starting a flame war.
Can’t we have two (or more) different OSes? Isn’t it good, having more choices and competition?
Every company try to control their OS, except open-source, but I think Google and Apple have done both a good job in creating the smartphone world. Why the hell should one be (immensely) better than the other?
This kind of “fanboy” arguments remember me when I was 6, discussing about the better soccer team with my little friends…
Edited 2013-12-15 19:26 UTC
If you hear someone saying “Android fragmentation” without clarifying if he means version fragmentation or UI fragmentation, you can assume he doesn’t know what he is talking about and can be ignored. ‘Nuff said.
Edited 2013-12-15 22:17 UTC
As I often use Forbes as a poster child for ‘suits’ being tricked into using sick buzzwords like “web 2.0”, or abusing terms like HTML 5 without ever actually grasping what they are, or why they should or shouldn’t be used — and instead just having seen the term used assume it’s something they should have… and the phrase I use (a good deal) is:
“Whenever you hear this type of ignorant nonsense it usually stems from people who think they can get sound tech advice from the pages of Forbes, which is akin to trying to get sound financial advice from the pages of Popular Electronics!”
This has been more and more true with web technologies — it’s truly like we’re seeing a return to the same sleazeball predatory nonsense as prior to the original dotcom bust; where sophisticated investors will give money for vague promises if you just use the right combination of sick buzzwords and terms they’ve heard but never took the time to understand.
Simpsons did it: Excuse me, but “proactive” and “paradigm”? Aren’t these just buzzwords that dumb people use to sound important?
I think you can throw “fragmentation” into that mix just as easily as “Web 2.0”, “big data”, “wikiality”, “convergence”, “SEO” and even “HTML 5”! Since most of what people CALL HTML 5 has exactly two things to do with a markup specification — and Jack left town.… 99% of the time you hear someone using those terms, they’re trying to scam you or prey upon your ignorance.
Edited 2013-12-16 01:34 UTC
What ever do you mean???
I get ALL my technology news and views from Forbes…and Gartner.
I don’t see what could possible go wrong with that.
Being a rookie Android developer myself, I can say that surely there are challenges, but whether the challenges are “problems” really depends on a case-by-case basis.
For example, there is a difference in the implementation of “Settings” screens between Android 2.x and Android 3.x/4.x. For Android 2.x, we use PreferenceActivity and use the API “addPreferencesFromResource” of the PreferenceActivity to create the Settings screen. On Android 3.x and up, we use PreferenceFragment instead, and attach the fragment into an activity. Even the Android Support Library backports Fragments, PreferenceFragment is not available. Developers need to determine the running OS at runtime and implement both methods to handle all cases. Not to mention I need to test the implementation on both Android 2.x and Android 4.x systems, at least.
There are many other similar cases, but this comes to mind as I just implemented this trivial solution this weekend on my app. Surely this increases implementation costs, but what I see for now is that there is a transition period between “legacy” Android (2.x) and “modern” Android (3.x/4.x). In fact, there is not much differences between ICS or JellyBean or even KitKat. There are new features, but not radical differences in terms of API or other behavior that exists in Android 2.x. Once Android 2.x faded away, the lives of developers would be better in my opinion.
Of course I don’t know what happens when Android 5.0 comes, but the current trend of Android 4.x shows that Google wants its API and behaviors to be stable for a certain period of time.
This. +1000.
I have a feeling that people who dismiss android fragmentation never written anything more ambitious than fart app or 1000000th repackaging of some website into ‘app’.
If we accept the thesis that Android fragmentation is not having a big impact we are still left with the question of why Android platform performance is so different to iOS.
Something is happening.
However you measure it, whether by using any of the many and numerous metrics of user engagement or by measuring the amount of commercial activity supported by the two platforms, the same phenomena is abundantly clear: iOS is a much more successful platform than Android. Not only is that true in relation to per capita utilisation where the average iOS user significantly out performs the average Android user in platform usage and spend, but the difference is so large that even though Android units outsell iOS units by a large amount, iOS out performs Android in aggregate usage.
So what is going on?
The reasons for this stark difference in platform utilisation is probably complex but fragmentation probably plays a role. The sort of factors that come to mind are:
a) fragmentation
b) Android smart devices, phones and tablets, purchased as periodic replacements for dumb devices which are used a dumb devices.
c) The superiority of the iOS service and content stack
d) Over estimation of Android shipments due to the paucity of actual official sales data from all Android OEMs
d) The wide dispersal of Android into many use scenarios producing spoof device statistics. For example so-called Android TV sticks and boxes, typically dongle like devices that plug into a TV and are used primarily as vehicles for bootleg video distribution in Asia, which are activated and thus listed as Android tablets.
There almost certainly factors at play, can anybody else suggest any?
Curious that you did not list “the measuring of user engagement is inherently flawed, because it usually only measures a very limited set of use cases”. E.g., if you measure Facebook, Twitter, the NYT, CNN, and BBC – you’re not getting China, Russia, and large other swaths of the world.
So, most likely, it’s a combination of all of those – except fragmentation. That has no place in your list.
Statistical cherrypicking by weird-ass Apple cultists?
OK – fill in the missing stats left out by the “weird-ass Apple cultists”.
What I find weird is how some people are so rendered so uncomfortable by the disparity in platform usage between Android and iOS that that either actually claim it doesn’t exist even though all statistics point to it being a real, easily measurable and persistent phenomena.
Thom your argument is like me claiming that there are several teapots orbiting the sun and saying there is no evidence to the contrary. It may be that there are large numbers of Android users who are very actively using their devices in China and Russia in ways that fail to show up in all metrics of platform use, if their usage does not show up in metrics then there is no way to disprove that. However if their use does not appear in any metrics how does their usage have any significance? If they don’t surf, don’t buy, don’t use apps, don’t click ads, don’t do anything we commonly think of as platform use function then under what circumstances would their usage be of significance?
I tend to think the simpler explanation is the right one. The dog is not barking because it is not there.
I don’t think you understood my point. Their usage would not show up because the statistics you rely on are very western-oriented, and often even US-oriented, meaning that non-US, and non-western services are not taken into account. It’s not that these people do NOT use their phone – it’s that they do not use the services monitored by western and US analysts.
For instance, on my phone, I never browse to the sites or use the applications of: the BBC, CNN, or any other non-Dutch television channel, the New York Times or any other non-Dutch newspaper, and so on, and so forth. Yet, sites like this are often included by analysts – while local sites like NU.nl, NOS.nl and their applications are not. Thus, my Android usage would not show up at your analysts.
However, I am not using my phone any more or less than any average American. This effect would be infinitely stronger in more culturally different locations such as Russia, India, and especially China.
I’m not saying the analysts you cite are wrong or that my reason explains everything. You were asking for more reasons, and this is likely a very important contributing factor.
Thom, if you’re interested in Russian stats, there’s a local service which tracks them; the website also has EN version: http://www.rankingru.com/en/rankings/mobile-devices-producers.html (and as you can see, in the metric relevant to this discussion Russia is fairly like western countries, with large Apple usage despite them being a minority)
Tony, you asked for suggestions, I gave you one. I’m not emotionally involved in the argument enough to try to massage any figures though, so I can’t help you out there. You know in your heart that I’m right though, don’t you?
Edited 2013-12-16 17:21 UTC
It’s not some people, it’s you personally that is obsessed with it.
How about the trivial fact that any iPhones are freakishly expensive premium smartphones when compared with your run-of-the-mill Android giveaway phone? This is an obvious self-selecting bias. Target the wealthy, tech-savvy customer instead of the grey masses and surprise, you get people using the product more and spending more money on it. Another thing is that the functional equivalents of free apps in Google Play often cost money on the App Store (one factor being that it costs money to publish on the App Store and you can’t sideload, so you get a lot fewer hobbyists and open-source projects there).
In the end, your question is like asking why a premium brand has higher margin per customer than the mass-market brand which targets the more conscientious spender.
Android users are 1300% more likely to use a desktop or laptop computer for web browsing than are iOS users.
93% of all annoying feckers who get in your way while replying to posts on facebook in a busy street are using iOS devices (interestingly, 93% of the remainder are using blackberrys).
More than 50% of the use difference noted repeatedly by Tony is down to some form of mental illness/slackjawed dumbassery meaning that people are unable to put their goddamned iPhones away even for a second.
Statistics are fun!
No…. We are not left with anything. You still have that in your head and will not let it go. We know that the market is giant and Android happens to be more accessible than any other platform. The fact that most people are not glued to their screens and browsing HuffPo all day long is just that – fact.
You still will not let it go… I mean, it has been debunked so many times that it’s not even funny any more.
Wait… Did you read it yourself? If they are actual devices that are being used… how are they spoofed!?!?! Do they become any less of a platform?
Seriously please stop your tantrums about the fact that Android is so widespread and sells. It’s beyond annoying now.
There is no data to support the proposition that lots of people, who are somehow off the radar of statistical evidence, are utilising Android devices as much as iOS devices as computing platforms but some people strongly believe that to be true. Those people also really want it to be true. I believe it could be true. But the fact is that there is just no evidence it is true. The alternative position, that there is a clear and significant difference in the degree to which Android and iOS devices are used as computing platforms is supported by plenty of evidence. None of that evidence is unproblematic, each bit of it is patchy and incomplete, but the fact that so many different sorts of data collected by some many different sorts of organisations all point to the same general conclusion is strongly suggestive of a real world phenomena.
There is a different sort of position to the ‘it’s not really happening‘ argument which is that the under utilisation of Android devices as computing devices is happening but it’s not important, or even that it’s some sort of positive feature of Android users/devices. Leaving aside whether not using a platform as a platform is a good or bad thing it is nevertheless true that if one is discussing the relative strengths, weaknesses and performance of competing platforms then the relative utilisation rates of different platforms is surely worthy of consideration. I would argue that if there is competition between two computing platforms then the issue of platform utilisation rates is fairly important in judging how to interpret market share as a proxy for platform strength.
Finally there are two issues issue of significance in relation to spoof devices such as movie distribution sticks that come with Android installed but which are activated as tablets. One is that they are being counted as Android tablets, and the other is that they are being counted a devices which compete against devices running other platforms when in fact they are an entirely different class of non-competing device.
This all started with an attempt to situate the discussion of the significance of Android fragmentation in a broader platform context. Clearly if both Android and iOS per capita usage patterns were the same the issue of whether the fragmentation of Android OS versions and devices types has a deleterious effect would not even arise. The issue of fragmentation only arises in relation to one important parameter of platform health which is developer revenues (and hence developer engagement, and hence the relative strength of software ecosystems). If the pattern of platform utilisation was the same for both platforms than by now there should be between two and four times the amount of money and commercial activity being generated in the Android ecosystem as in the iOS ecosystem. The exact opposite is true. That is interesting and worthy of some analysis, particularly when trying to judge if one particular factor, such as fragmentation, is having an impact.
You act like it’s important of relevant to any discussion. Even if 25% of Android users are actively using their devices that’s already hundreds of millions… therefore you bringing up the topic is generally useless.
And you don’t bring up just one topic without mentioning the delusion(at this point it is a total delusion, seek help) that Samsung is still stuffing the channel. Let alone, the sales figures are reported by the same organisations that say that iOS leads in web usage.
I am going to tell you this – if you trust them when they report high iOS web usage, then you have to trust their Android positive reports as well. Selecting which one you like is beyond anything I can express…