51 comments

[ 3.3 ms ] story [ 92.6 ms ] thread
I wonder if anyone who develops for Android could shed some light on the difficulties they encounter when developing for a fragmented platform?
Why not ask a web developer instead? Android is a lot less fragmented than the world wide web.
While this is true, owning and testing all the android devices is a lot harder than having a system with many web browsers on it.

Also asking customers to upgrade is usually downloading new software for websites, but is buying new hardware for many android users (as there is no released update nor will there ever be for their devices)

> a system with many web browsers on it.

Try multiple systems (multiple operating systems), with combinatorially many possibilities for the interesections of {operating system, browser type, browser version, screen size, resolution}.

Which is exactly the same situation for android. And android is a far smaller area so tricks like just using the center third in both directions for large screens doesn't work.
> Which is exactly the same situation for android.

Not at all - the difference between any two Android devices is far less than the difference between any two potential viewers of a website.

> And android is a far smaller area so tricks like just using the center third in both directions for large screens doesn't work.

Android also has an extensive set of well-defined guidelines for layout and constructing applications - the more you rely on the core API to handle these tasks, the more portable your app will be across Android devices.

That's a lot more than can be said for browser rendering in the general case.

Generally speaking you don't need to own and test all devices, the emulator does just fine. There are a few quirks here and there but as cryptoz alludes to I've never had more headaches than trying to support all the versions of IE and modern browsers.
There are pretty major differences between pre Ice Cream Sandwich and post Ice Cream Sandwich. My app is almost entirely Fragments, the Action Bar, rich notifications. All of these things didn't exist in 2.2 or 2.3.

Thankfully between Google's support libraries and Action Bar Sherlock most of it can be papered over. I haven't had too much trouble with it so far.

We don't use fragments too much since they're so incomplete. We use ABS for everything.

Do you support < 4.0?

What is incomplete about Fragments? My company uses ABS for most of our apps, and support < 4.0 - most of our applications rely on Fragments heavily.
Each time we go to use them we find something is missing. PreferenceFragment is a good example. Google insists we use it but it's not backwards compatible, thus requiring two separate activities.

Are you using Fragments for phone/tablet/TV differences, or do you stick strictly to phones?

All 3, and I agree about PreferenceFragment - it slipped my mind but it is a pain in the ass.

I haven't run into many other issues(well, except Maps, though I believe this is handled with the new Maps API but I haven't worked on it yet).

Our best-selling app is a widget app so we probably have to contend with the most fragmentation: OS, screen size, device UI layer, device launchers, indie launchers, custom grid sizes, and mods. Then double that for screen orientations.

OS differences, screen sizes, and layouts are handled by a lot of XML resources. Memory limitations is a big problem in older devices and OSes. Flexible layout design is also a challenge since Google & Samsung/HTC have opposing ideas of how big a widget should appear.

Between Mike & I, we have 30+ devices for testing. I have the majority since I work on the UI and need to see how our widgets look for every possible layout. We don't need to buy one of every device made, we just cover new screen types (Droid DNA), platforms (Kindle Fire), and OSes (Nexus 4). We also make sure we have any standout devices (Google Nexus, Galaxy S3). We've been collecting phones & tablets since 2010, so we're pretty well covered for older devices.

We don't mod or force-update our devices; we remain stock. When a major device updates, we update too. We don't support mods/ROMs since it's too difficult to solve bugs on moving targets.

Most users understand Android has been changing exponentially over the past two years. The Galaxy Nexus is the tipping point. Anything made prior is simply outdated. Android 2.3 is our minimum supported OS, but we leave 2.2 open for those willing to try. Similarly, a few top developers are making new apps that are strictly 4.x & up.

The adoption rate of the latest version of Android may not be that high but does anyone know how MANY devices are running 4.0 or higher?

I routinely tout the high adoption rate of iOS devices and how it justifies increasing the minimum iOS versions for apps because you still have a massive potential userbase. But because Android has more phones in the marketplace than iOS is it possibly now for developers to make Android 4.0 the minimum and still get a respected number of users?

> But because Android has more phones in the marketplace than iOS is it possibly now for developers to make Android 4.0 the minimum and still get a respected number of users?

There's no easy answer to that question because it depends on what your target use case actually is.

Remember that the goal of Android is to be a universal platform for hardware, which means that the target devices for Android are much more heterogeneous than iOS - and therefore the intended use case as well.

I use an out-of-date Android device as a portable music player and an up-to-date one as my regular phone. Even that's not that wildly different if you start imagining people running Android on their household appliances.

So, in my case, even though I technically still run Gingerbread, I'm fine with Android applications requiring 4.2+, since the only device that runs Gingerbread is essentially a single-purpose dedicated device. I imagine we'll start to see more of this behavior in the future.

"I imagine we'll start to see more of this behavior in the future."

I'm not exactly sure what you mean by this. Do you mean consumers will use/buy older Android devices for very specific tasks?

I think the exact opposite of this will happen. Your average consumer is not going to want to have multiple devices. They just want to carry their phone around and have it do everything for them.

> Your average consumer is not going to want to have multiple devices.

Your "average consumer" already does. The point is that Android in three years will be serving an even wider range of devices and household appliances.

Ah I see the disconnect. You're talking about Android running my microwave. I was thinking about consumer electronics like phones and tablets.

While I agree a lot more devices will be running a more complicated OS with increased capabilities in the I future I don't think it is a foregone conclusion that it will run Android. Android is primarily used on phones, tablets and TVs because of explicit design choices made. Perhaps they will position themselves as a generic OS for electronic devices but they have some work to do before that can happen.

I think he means Android will power more embedded, single purpose devices.

Your microwave currently has a home-rolled LCD+pushbutton interface. Within a few years it will be an Android powered touch device. Probably out of date before you buy it with no way to update.

But who cares, right? It's a microwave. As long as it still performs its microwave controlling functions, it doesn't matter if top new Google Play apps don't run on it.

I'm not 100% sure how realistic this is. But I have a feeling it's close.

I seriously doubt this is a valid concern right now. In the next 3 years, yes, today, no.
The problem with Gingerbread is that it's good enough for a majority of users, including me.

When I upgraded from Gingerbread to Jelly, I liked the improvements a lot, but it wasn't enough to justify the decreased battery life. Granted I'm talking about a Galaxy S, with Jelly coming from Cyanogenmod, which is known to have battery issues because of shitty drivers.

So I'm just waiting for a phone upgrade when my contract expires. My next phone is going to be a Nexus, because that's the only phone guaranteed to receive supported upgrades for major versions. On the other hand, my Gingerbread has served me extremely well, which is why I don't really feel the need to upgrade, otherwise I would have done it already.

All users are going to upgrade to Jelly or higher eventually, because contracts expire and batteries die.

(comment deleted)
Should be pretty easy to calculate - 40% out of 500 million or so, so about 200 million devices have 4.0 or higher.
(comment deleted)
Those numbers must include the Meep! devices kids got for Christmas (Android 4.0). I don't know how many units they sold but I suspect just about all of those have been or will be returned [1]. Just about the only thing I could do on it was connect to Google Play.

[1] Here's their 'Hot News' page full of apologies http://www.meeptablet.com/us/hotnews.asp

I've never even heard of this device. It sounds like a waste of money when a Nexus 7 is just $50 more. Did it even have a substantial number of sales?
Seemed unfortunately successful in its advertising. Have a brother in first grade who is a champion at using my iPhone and iPad to play games and look up dinosaur pictures and videos. Suggested to my stepmom he get an iPad mini or Nexus 7 for Christmas, but she had already bought him a MEEP (at his request). What a shame. Kids can (and should) learn real computing devices. Giving them locked-down, "child-friendly" devices is a disservice to both them and the society they'll one day be adults in.

( - Pretty sure that learning Logo, QBasic, DOS, and Telnet/Winsock during grade school in 90's is the only reason I'm an employed programmer now.)

I'm not sure what parents see in these toy-looking tablets. My daughter's had a Galaxy Tab since it came out and she was three. No problems figuring it out whatsoever.
It is really frustrating to see all the Android fanboys downvoting you.
It's because he's making a cheap shot at a cheap product and contributes nothing to the topic.

UPDATE: there are hundreds of "no-name" Android devices running 4.0, including those HDMI TV sticks you can get in China. Most likely the brand he mentioned didn't make a dent in the statistics.

I didn't interpret it that way. He brings up a very valid point: it is near useless to talk about the rate of adoption for Android versions because of the large variety of devices that use it. He points to an example of such a device.

edit to respond to your update: maybe the particular device did not make a dent on it, but you said it yourself: there are a gazillion devices running Android, and many new sales were made over the holidays. We have no idea if the increase in the percentage of new versions was due to new sales or upgrades of existing devices.

Naturally it would be both (upgrades & new devices).
You're frustrated about a vote score you can't see? I think you should take a deep breath and step away from HN for a couple hours. Or perhaps try smiling :)
The problem is that it changes the color of the text AND pushes it further down in the comments section. This makes it so that comments that add to the discussion but are unpopular get dismissed and ignored.
Downvotes normally correct themselves after a few hours. It really isn't worth talking about them.

Unfortunately you used the f word, so you may get some downvotes.

Like I said in my response to jrockway, downvotes matter, especially in the first few hours of a comment's lifecycle. Those first few hours usually determine whether an interesting discussion comes out of the comment, so if the comment is less visible (due to font color and placement on the comment page) due to a few individuals' knee-jerking, it is unhealthy for the community as a whole.

It's like a baby not getting enough nutrients in the first few months. That will adversely affect its development and have a permanent negative impact on its future health.

By the looks of it that 'Meep' tablet doesn't use Google Play. So no, it won't be included in the numbers in the article.
85% of our users on our biggest selling app (500k+) are 4.0 & up.

UPDATE:

4.0: 35%, 4.1: 31%, 4.2: 19%.

Paid or free app? What kind of app?
Paid, widgets.
Napkin math says that ICS+ users are 8.75 times more likely to purchase than pre ICS users.

Interestingly this is the sort of magnitude of difference we sometimes see between iOS and Android app stores.

It would also be interesting to see the number for a fairly popular free app. That could give you an estimate on what percentage of users buys a low end Android phone as a feature phone replacement.

Recap on a recent conjecture of mine: the difference in paid content from iOS to Android is primarily due to the number of credit cards Google has on file moreso than the number of people using Android as a feature phone replacement (often claimed to be the big reason for dollar disparity between the stores).

We also have an old free app made on sdk 2.3 and backwards compatible to 2.1. That one is 62% 2.x users.
That seems fairly close to the general population breakdown (59.2% are pre-Honeycomb and 62% wouldn't have been too long ago).

Just one data point but it seems in line with credit cards being the issue not people who don't use the app store (if it was more of the latter you'd expect something like a 2:1 high end buy ratio for free apps but it looks just like the whole population).

Pie charts are useless enough. Pie charts with varying shades of green and nonsense names are even more useless.
Would you mind explaining why pie charts are useless? Honest question.
Pie charts are stupid because the shapes you want to compare are rotated in space. You can't distinguish close values. It's better to use a normal bar/column chart where the comparison only occurs in one dimension (height of the bar).
In general it's hard to know what a chunk of the pie chart means. You get a very simple glance that one chunk is bigger, and another chunk is much bigger. But looking at that chart: How big is Eclair & Older compared to Honeycomb?

That chart is ordered by release; you start reading it at "3 o'clock" on the right hand side, and work clockwise.

Luckily they've labled each chunk of the pie. Normally they'd just have a key alongside it. People would have to match a shade of green (or some other color) to a key to try to get the numbers.

Pie charts do have uses. But they're just hard to read and present information in a weird way.

(http://pol.illinoisstate.edu/jpda/charts/chart%20tips/Charts...)

(http://www.juiceanalytics.com/writing/the-problem-with-pie-c...)

(http://www.stevefenton.co.uk/Content/Pie-Charts-Are-Bad/)

Two specific reasons:

It's very hard to judge the relative size of various wedges, especially when they're not adjacent and one is significantly larger than the other.

Secondly, the labels are usually sufficiently removed from the data that you need to look back and forth several times to decode it, if you can even be bothered.

Here's a nearly useless pie chart: http://insights.chitika.com/uploads/screenshot-1.png

Here's a much more meaningful chart that tells a story: http://static.arstechnica.net/2012/04/02/firefox-adoption-20...