Inevitable consequence of the way Android works I think.
A new study conducted by IDC and mobile-developer platform and services company Appcelerator has determined that as Google's open source Android operating system becomes more and more fragmented, fewer and fewer developers are putting it on their "must-code-for" list. "We've seen a steady erosion of interest in Android" among …
Inevitable consequence of the way Android works I think.
Remember Apple's claims of Android fragmentation? You might want to look at iOS fragmentation, it's MUCH worse...
so many handsets, so many variation of android, so many branded phones.....
No wonder, so why the surprise?
Part of its appeal really. I want a keyboard on mine, someone wants a tiny one, someone else wants a keypad on the front. Nice big array instead of one size fits all.
It never stopped the PC market place. Various PC resolutions doesn't stop the average developer (and since the likes of Windows came out, no worries about the graphics driver either). Same can be said for various peripherals. You detect if they have something (eg a webcam) and give them extra functionality.
Something Android devs need to think of. Ok, your first app might be a bit fiddly to write to do all the detecting, but keep the frame and reuse it. Probably ones out there for free to do that basic nonsense.
You're spot on wize.. the problem is in the mindset of all the noob android developers.. and I mean that sincerely.. there are sooo many developers that know Java now.. it being the #1 "single" development language in use world wide..that everybody thinks they can just jump in and build an android app. They find that it's not as easy as just knowing java, there is a lot to writing a good android app. Like you said, they need to write an app for the lowest common denominator, which right now should be Android 2.2 or probably 2.3 by now. Depending on the app, probe for features. The Android Market does a good job of hiding apps that won't work with your phone..but here is the kicker.. the Market app ONLY works if the developer provides the info needed for it to work. If a developer doesn't put in all the "hints" that the market can use to only show apps for phones it will work on, then everyone gets the app, complains it doesn't work with their phone, the app gets poorly rated.. and on and on it goes. And you know what the developer does? "See..it's due to fragmentation..I have to support all these different phones". Nope. Sadly, Google has done a ridiculously bad job of teaching android developers about these subtle but needed hints. So most developers, especially the noob "I can write android cause I know java" developers that don't take the time to really learn the platform.
Been there, seen that.
Give it a nice common API to develop against, then.
It's not the fact that there is no SDK for them all (there is as has been pointed out), the problem is that as a developer you have to code for 6 different screen sizes (at least. And they aren't nice 1x, 2x sizes like the iOS, they are completely different aspect ratios too), those with and those without physics keyboards (the on-screen ones have to be handled in a different way), those running version x and x.1, x.2, version y, and version z with lots of subversions in between, those with and those without physical hardware buttons (like little joystick things), etc.
Then you have to work out all the possible permutations of those combinations.
Add to that that the emulator takes 5 minutes to start up and you soon discover that it is quicker to compile, package and deploy your code to a real device attached in order to test your code.
No, you don't. What you really have to do is write robust code that doesn't depend on a screen size. And I've never had to handle the physical keyboard on my Droid any different than the virtual one... that is what the OS is for.
Also, the emulator doesn't take 5 minutes to start even on my POS Pentium D box, and that doesn't matter since you can leave it running and just redeploy as necessary.
What the hell are you doing?
Sounds like the AC is trying to develop on a netbook. Yes, I've tried that - AppInventor is SLOW on one, but it did the trick - and I had to use the emulator as the attaching of my Wildfire to it just didn't want to work. But yes, I was regularly packaging up my app, putting it on Dropbox and installing it on to my phone to test that way!
No, it's not like the Unix story at all. That's why using the word "fragmentation" is pretty misleading. People remember Unix and what Unix fragmentation was. Android is pretty much like Windows, except that it's slightly less "fragmented" than Windows used to be because the same code will run on different processor architectures (which wasn't true of Windows back when there were versions for multiple architectures before; Windows 8 will be more like Android).
The so-called "fragmentation" in Android is mostly about different hardware, and a little bit about how many updates to the operating system exist concurrently on recent hardware. Similar issues have always been with Windows, and yet somehow developers learned to deal with it. It's funny though that even though the situation with Android is very like that with Windows we never really heard people accusing Windows of being "fragmented."
Go buy a Transformer Prime to develop on. AIDE is an IDE that actually runs *on Android devices*. Make your code change, compile, and deploy in no time at all, and run it right away natively on an actual Android device, with the real touch interface, real hardware, etc. Put the app through its paces, go back to AIDE to make another change, repeat as necessary.
I have a Droid 4 keyboard phone, and AIDE works amazingly well running on my phone. Try that with iOS!
Obviously if you have an immense code base, compiling on a mobile device -- even a zippy one like a Transformer Prime -- may not be your best option. But for many types of applications, compiling just doesn't take all that long.
for a big part, the fragmentation is in the heads of the developers. Most apps can be written against the older API and thus run on most Android phones. Tablets is another matter but not only for Android.
Only if you want to use newer features of the OS, you start seeing a limit of devices you can run on, but for a part, that is also the case with iOS - not all iPhones run the latest version, so if you happen to need the latest features, you're equally out of luck.
Not really true at all. Android has far far far more variation in hardware specs. This can impact on devs in trivial ways (e.g. having to support every screen resolution from 120x80 to 1280x800) to extremely difficult to work around ways (e.g. having to support everything from no graphics card at all to Tegra 3s). Either you cut your available market, or you have to target some pretty insanely low end hardware.
Compare this to the iOS world where you must support exactly 2 resolutions – 320x480 and 1024x768 points (note, points, all you do to support retina displays is provide images with 2 pixels to the point), and where you can rely on every single person with an iPhone in the last 3-4 years having at least a PowerVR SGX 535, and an iOS you're *way* better off.
Note – this is the most commonly used logic in industry for not supporting Android, along with the fact that users seem far less willing to pay for software on Android than on iOS.
The tools google makes available for Android developers mean the problem of fragmentation really is in their heads. You don't have to support all screen resolutions or sizes, and you don't have to support all hardware or OS versions. You make the app you want, list the resources it requires, and the Play Shop will only allow it to be downloaded onto devices (or countries) for which it is compatible.
There is no particular difficulty in making a single version of an app work on both tablets and phones (and TVs) either. Developers just need to associate UI "fragments" with different resource specifications and the market and the OS will do the rest. Unfortunately devs sometimes don't bother to do this. Hence you have the Android Twitter app held up at an Apple keynote as an example of why android is bad. It's not android which is bad, it's the developer of that particular app.
Think of how a website looks on a 4:3 screen and on a 16:9 screen. That's the sort of "problem" android developers have. Now consider how the same website looks on mobile. El Reg is an exception but many sites use different UI on their mobile versions and desktop versions whilst the code behind it remains the same. Android allows devs to do this.
Careful there Craigness, you are using facts in your reply. Fanbois don't like facts (and the fact that you have been downvoted is evidence of this).
You're right. It IS in developers' heads. evs don't have to support all resolutions, they can target specific hardware and OS versions. Absolutely.
And yet interest is declining "because of fragmentation".
There are a number of reasons why that is - and I say that having written apps myself, and having argued about dev mates of mine about it.
The first is that devs don't like the hate dished up on a platter when an app they write that targets the median version of Android of the moment doesn't run on a tablet, or on a lower-speced phone. And you know how people jump at the opportunity to complain. The number of bad reviews because a specific configuration isn't supported is nuts.
The second is that these same devs cane easily write as many versions of apps as there are Android/hardware permutations. They don't because writing an app takes time. It takes a lot of time. I'm no fan of HTML 5 but PhoneGap becomes compelling because it speeds up multi-platform. Mono and MonoTouch have promise. However their adoption by non-hipsters is also a bit laggy because these cross-platform frameworks sacrifice a lot of platform- abd device-specific stuff. You can only stretch CSS so far when you're skinning Android as opposed to Metro and iOS.
The third is that there's no money in Android apps. Established iOS app brands that bring out an Android version cash in, sure. But the noob dev that has a good idea and charges for it sees it ripped off and re-submitted as a free app.
Finally, there's a feeling that fanbois are annoying but that Apple's products ARE better. And that Android is staunchly defended by Google apologists. One particular friend who's written some successful iOS games is not considering porting one to WP. When I laughed and asked him why no Android I got a dirty look, and no comment.
Something to think about.
It is INCREDIBLE that people have managed to write software for computers with displays ranging from 640x480 to way past full HD. Yet when it comes to mobile, they fail.
Having written GUI code that scaled to various screen sizes, I REALLY fail to see why mobile developers can't? Hardcoding pixel positioning FAIL
Your outline of how to cope with Android development for devices is illuminating, but this one sentence is a giveaway. In the same way that iOS is a kiddy-OS (not meant in a derogatory tone, note - my Alzheimer-suffering grandfather can drive an iPad, that's my point), the way in which UI programming is done under iOS sounds simpler: two screen resolutions, simple maths for "retina".
80/20 rule applied, do you think 20% of devs go for the quality approach you described, and the other 80% either fudge something which doesn't work very well under certain circumstances (hence some apps look awful on some devices), or do you think the other 80% will decide Android is just "too hard" and bugger off where it's perhaps simpler, and where the users buy more apps (sorry to drop that last obvious argu-bomb)
The point wasn't that it's impossible to target parts of the android market it's that you can't deal with the whole Android market.
Telling everyone that Android is bigger than iOS is misleading. It is but you'll never be able to target all of them and I suspect some developers are realising they can actually target more people for a lower cost on iOS than on Android.
Also, as an Android owner, I know the system for limiting who sees your app isn't perfect but more importantly when it opts not to install it, you get some generic message that's not very helpful and implies it's a network issue. Hopefully that's changed in newer versions but the over all user experience on Android in the app market is a bit shit.
I think it's more that you can't even rely on certain hardware even being there so unlike a desktop where you can count on there being a keyboard, mouse, etc you don't get that luxury on mobiles and unlike a desktop you can't expect people to go out and buy the required hardware.
If you phone has no camera it's always going to be that way. I'm sure screen resolution is a pain on phones (mainly because you are dealing with a smaller screen but it's probably no the biggest issue they need to worry about.
This is exactly the problem that plagues Java ME. For example there were phones that supported high end graphics via OpenGl ES and hardware acceleration, but most phones were just the run of the mill feature phones with really slow processors. So a developer could write a high end app but then their potential market plummets, so they write for the lowest common denominator. Now the same thing is happening in Android, if you write for the latest and greatest you lose out on the bulk of the potential market.
>Fanbois don't like facts (and the fact that you have been downvoted is evidence of this).
Craigness only got 1/25 downvote. You are up to 6/9.
Craigness uses facts, and interesting ones at that. The same can't be said of your oh so useful contribution ;-)
On a different level, I wonder if Appcelarator doesn't have a vested interest in playing up Android fragmentation, given their offerings. And I think those that have iPhone 3x might be leery in upgrading to later OS versions - I recall it being somewhat of a stinker when 4.0 came out. Now, I have no idea how big that user base is - might be somewhat bigger than expected with 3 yr contracts ;-)
However on IOS when you try to install an app that uses a newer feature you have the option to upgrade your OS. Android who knows when that option will come along.
> The third is that there's no money in Android apps.
It's not really exactly that Android users are less willing to pay for software. It's that users who can't afford to spend a lot of money are more likely to have an Android device. A higher percentage of iOS users have already shown themselves willing to splurge on the hardware. I also suspect that there might be more Android phone users who aren't really aware of their phone's full capabilities, since you can end up with an Android phone almost incidentally.
Clearly that's why so many developers are considering Windows Phone 7: because now that 1% or so of smartphone users have Windows Phone, there will be a ton of money in targeting them, unlike the paltry half the market that has Android.
That is all. It's far more likely that lazy devs can't make chargeable fart apps on Android like they can on iOS, because there are already free ones on Android.
If you going to write crap, then don't expect to be able to charge for it like you can on iOS. On Android, there will already be superior free versions.
This isn't FUD, it's straight from the horses mouth. A games developer leaving Android because of fragmentation.
The conclusion drawn is that it's just not worth developing games for Android
The "lazy dev" argument still stands. The case for the defence: all the games developers on android.
I have to question the article with Mika Mobile.
I have Battleheart and think its a great game. It was basically the first game I bought when I got my Transformer.
My problem with it is that it hasn't been updated since I bought it almost a year ago. Last update was July 14, 2011
So when he is talking about constantly having to push out new patches etc where are they?
The last 30 days graph in the market is showing between 50-100k installs at £1.85.
That seems pretty good to me considering how old the app is.
Not saying that there isnt fragmentation issues etc but this particular case seems strange.
Question it all you like, it's straight from the developer himself. Are you calling him a liar?
Also from the developer: "...my comments here are simply my experience. It is not a condemnation of the android platform as a whole. It is not a proclamation that things will never improve. It is also not a weapon to be swung in the never-ending holy war between fans of one platform or another."
Why don't you re-read the last sentence a couple of times? Or maybe ask someone with a clue to explain it to you slooooowly?
"straight from the horses mouth. A games developer leaving Android because of fragmentation."
Fragmentation was a part of one of his reasons for abandoning Android, a subsection of the general point "<their> Android apps aren't making money".
Profit will always be king in this - and plenty of people will find a way of making money.
I have a Gen 1 iPod Touch and plenty of newer apps and games won't run on it - I doubt that is putting iOS devs off. If they assume it is okay to develop only for the latest & greatest Apple hardware / software then you may find Android devs doing the same.
Both platforms are fragmenting but iOS is doing so much more slowly. In the long run this may not be a benefit as the Android devs will have learned to cope with this in a way iOS devs won't.
There will be plenty of people on the latest version of any Apple platform but with each release some will be shunted a further generation behind as they don't upgrade - we now have three versions of iPad in our organisation - it seems like no time since we didn't have any.
Apple are going to have to juggle the need to be seen to have the very best products and the devs preference to avoid fragmentation.
Why don't you keep your smug patronising attitude to yourself, or is belittling someone online the only way you an feel good about yourself?
Hey, if you don't want me to patronise you don't post misinformed bollocks on the interwebs.
A single games developer that nobody had heard of, where nobody wanted his crappy apps.
I used to develop for iOS, but left because the approval process took too long, and I had to buy a Mac to develop on it.
So that's a single developer than left iOS for Android, so that evens that out then...
Who paidfor this survey, to me it looks like a Microsoft funded article.
Android fragmentation is a total myth. A myth that Apple & Microsoft looking live to exploit.
It's not hard to make a single APK that supports tablets and phones and the fragment system makes it trivial to make layouts that handle both.
The fact well over 95% of all android handsets are on os 2.1 or later makes os fragmentation a total money issue and no worse than iOS fragmentation.
You can also of course set device filters for screen resolution in your manifest and even exclude certain "problem " devices on the marketplace.
A total non issue and just FUD.
Agreed. You'd have to be a pretty crappy developer to be unable to make an app that doesn't work on nearly all phones. It's no different to developing for Windows, or for that matter, any other OS, including iOS.
Google even went to the trouble of creating a nice system which allowed an app to be optimised for both phone and tablet at the same time.
Of all the problems I've had with apps I've written I've never had one that was phone specific - android is android, whatever it runs on. If you follow the app guidelines it'll work.
> You'd have to be a pretty crappy developer to be unable to make an app that doesn't work on nearly all phones.
You'd have to be a pretty crappy developer to be unable to make an app that does work on nearly all phones, surely?
Making an app that doesn't work on nearly all phones (i.e. that works on hardly any phone) sounds much easier.
Full disclosure: I work for Appcelerator, on making the iOS part of the platform, but if it matters, my personal phone is an HTC Amaze. I'm still waiting for Ice Cream Sandwich. My views do not reflect that of Appcelerator, IDC, yadda yadda yadda, and I should probably get back to work.
I won't comment on fragmentation being real or not, it being FUD or not, because that I can't state from fact. I can state the survey was of the perceptions of the developers that use Appcelerator's product, Titanium, and may be influenced by what Titanium currently supports on each platform. But mostly, I want to clarify the purpose of the survey, and dispel beliefs that it's paid-for.
Follow the money: Appcelerator makes a platform/frameworks that runs on iOS, Android, Mobile Web, and a few others that haven't been announced yet. That's the bread and butter; that's the money source. Nobody 'pays' for the survey in terms of influencing opinion, because if they want to influence company decisions on whom to support, there's more effective means. The survey's primary focus is to internally know how the company's doing and determine what other platforms to support/focus on; the actual survey also included developer opinions on documentation, SDK, IDE, support, etc. The secondary focus is to get media attention and free advertising by people covering the report. Whether or not the report is favorable to iOS, Android, or the Commodore 64 doesn't matter; it'll still get media coverage.
If you want to be most cynical about survey-rigging, it would be in Appcelerator's best interest to indicate a cross-platform solution like Titanium is best. That would involve a survey showing all the platforms neck and neck, and NOT to show iOS taking a larger lead.
...this is why Google wasn't as enthusiastic about Honeycomb as most people wanted. They knew it was going to fragment the market. With ICS, a version common to both phones and tablets, Google can start trying to bring the disparate parts of Android (especially the phone and tablet segments) back together (I look forward to seeing what ICS offers--though my phone's too old, my Galaxy Tab 7.0plus is confirmed to be on the upgrade track). Then, as older Android devices age, get replaced, and drop off the map, the common base that is Android 4.0+ should make up a greater share of the Android market and make devs more comfortable again. As long as Android keeps up this uniformity going forward with Android 5.0 Jelly Bean and onward the environment should become saner for devs.
Really that doesn't matter - there's a compat. layer that lets you program using fragments right back to android 1.6 (although for your own sanity you probably want to start at the 2.1/2.2 level, since that's when the APIs really stabilised).
The uniformity of ICS is the frontend - and that's mostly licensing really (a manufacturer shipping with ICS must give an option for all their crap to be switched off) - although the option to remove preinstalled apps is nice. Good for end users - google should have got tough on this years ago.. but for devs, it's business as usual.
It's utter BS. The "fragmentation is killing Android" story dates back to when Android was just a few months old, and hardly had any apps at all. It has been recycling this whole time. If the story had one whit of truth Android would not now have 300 million devices sold, and 850,000 more every day, and 450,000 apps. Did the developers that abandoned Android over fragmentation these last three years make all those apps?
And IDC as an authority? You must be joking. The baldness of the lie is right there in the story: half of all developers are interested in Windows Phone. For what, charity? Because you like custom crafting apps for an audience of ten? IDC projected 30 million unit sales for WP7 launch year -that's how special they are.
Sorely disappointed here, vultures. You may as well hire on Florian Mueller if this is the quality of propaganda you're going to run with.
Perhaps developers are interested in Window as they see it as a way of making money. Having tried Android and not made any at all.
It's so easy to develop and app which works across all versions of android and different hardware configurations that whatever app you write there's probably a free one already out there.
If there's already one out there, why bother developing for Android? People won't pay for it anyway. Let's make one for Windows and earn some money.
That's the problem. There is no value in developing for Android
"That's the problem. There is no value in developing for Android"
That would be a problem, I agree. But is it in fact the case?
I assume some people are making good money out of developing for Android - am I deluded?