An interesting study has been making the rounds across the web these past 24 hours. The creators of OpenSignalMaps have been logging which new devices download their product, and they’ve collected data on 681900 devices. The results are… Diverse.
They’ve seen 3997 distinct devices – with the caveat that this number is inflated by quite a lot of people running custom ROMs, which are registered as separate, unique devices: 1363 devices appear only once, and according to the developers, this is because custom ROMs can overwrite the android.build.MODEL variable.
Looking deeper into the data, you’ll see that Samsung is by far the most popular brand for Android, followed by HTC. Gingerbread is still the most popular Android version – Ice Cream Sandwich has just 8.5%. Some work to be done there. About 13 resolutions make up the bulk of the logged devices, with a slew of less popular ones dragging behind.
Infographics like this usually make me itch, but this one is interesting because the developers aren’t complaining about this diversity, nor are they blindly praising it. “Fragmentation allows users to take their pick from thousands of devices. You can choose from phones with 3D screens, projectors, CDMA, GSM, or even CDMA & GSM. You may not care that Tag Heuer has made an Android phone but at least one person does (and they use OpenSignalMaps),” they write, “It’s a triumph for Android that as a single OS it can target so many markets.”
However, they’re honest about the challenges this poses to Android developers. “The proliferation of devices with their associated screen sizes, internal hardware and custom ROMs creates some difficulties,” they explain, “We spend a lot of time making the app presentable (or at less functional) on exotic devices – this is the most common request we get from app users.”
And this is exactly right. Android’s diversity is its strength, but like with so many things in life, it’s also its weakness. I like that nobody is imposing a certain screen size or resolution on me, leaving me free to pick the optimal screen size for me (4.3″ hits the sweet spot for me). I don’t have to fiddle with a tiny 3.5″ screen, nor am I stuck on a single resolution (seriously Microsoft?).
It’s this diversity and choice that permeates every aspect of Android, and yes, that’s problematic in many areas, but honestly, I personally wouldn’t want it any other way – I’ll take the downsides for granted. Be sure to check the data OpenSignalMaps has collected – it’s quite fascinating.
I wonder if Apple is so determined to stick to set resolutions because it’s easier to do skeuomorphism at set resolutions. That does make me wonder why WP7 is so constrained by comparison. Perhaps it’s just not as mature?
Personally, I’m surprised at the whole screen resolution being such a bother to developers. Haven’t we been making applications that can withstand arbitrary viewport sizes (window resizing) for the better part of a decade now?
Overall: I don’t think so / not really / depends what we mean by “withstand” – many (most?) applications had and have UIs which can’t exactly be described as ideal in the first place.
But it is difficult for designer for make flexible UI (Fixed width Web page are a testament of it).
Plus Porting the fixed graphical mockup to a flexible size screen is not straightforward (cost more money)
I think the issue with the fixed width web applications is just that the web is broken as a concept for applications. The web is for documents.
Any native application with proper use of layout managers won’t have any big issues with resizing. The only problem is that a minimal size is required, of course.
Documents break pretty badly for me if they are too wide, so this isn’t a problem for just web applications.
Yes, the money thing is real, but seriously, its not technically hard to do. It is creatively and emotionally hard for designers to allow for their creation to not be rendered at a fixed width screen size. I don’t really care if there is a tad more blank space between elements or the relative position between elements changes on different screen size. HTML was created with the idea that it would be rendered differently on different screens. Its the professional designers that have mostly screwed that promise up.
It looks like this. Fast answer is yes, but reality is different:
First of all most mobile developers are not used with this any more AND
For desktop:
1) The DPI didn’t increase so fast
2) Apps were not made to work full screen only
3) Touchscreen (mouse adapts easier to changes in DPI)
4) Screen size was not an issue
How does this influence:
1: – Don’t need to take care about font size, icon size…, you can assume it will be readable
3: – Don’t have to be sure the buttons are big enough to press them easy while small enough to use less screen size.
2: – you don’t have to make each app resizable, most dialogs could have fix size.
4: – didn’t have to think the interface so well to display all info needed, while taking care that on small screens it should be visible, on big ones uses all space and still look good.
Over all the biggest problem is that you have to create a GUI that looks good and is usable on a 2.5 inch X10 mini, and a 5.3 Galaxy Note.
Most GUIs that worked ok on a 15 inch 800*400px display, also worked ok on a full HD 22inch screen
The upside of mobiles is:
Each OEM knows the size and DPI of the display, so the OS can display the UI right (size of buttons…), with little help from developers: font size resolution independent, use a dynamic layout, be smart about how you place elements – try to use vertical layout as much as possible
Most important thing is to use standard GUI elements, or derive from them, do not create your own GUI framework just because you like it.
Did anyone notice, how this word is used almost exclusively to describe Androids natural diversity in a negative way?
Anyone ever read of angry Windows-developers, complaining about the “Fragmentation” of Windows, that they have to support versions from XP to 7 running on Netbooks to 40″ TVs.
Or the “Fragmentation” of the web, that they have to support different formfactors and not only different versions of standards, but several implementations of those (even without IE it’s not easy).
In each of these scenarios, diversity is considered demanding but natural. Somehow mobile OSes seem to be different…
EDIT: This was not meant to be a request to be disproven. Of course there are articles of complaining web and windows devs, but those are not nearly as prominent as the Android fragmentation story nowadays
Edited 2012-05-16 22:08 UTC
Probably, explaining the skill level of most of these devs.
Fragmentation has always been with us since the early days of computing.
On those days, where Assembly was the main language, application had to be recoded from zero for each single processor and OS.
Then with higher level languages each manufacturer had its own main language and OS, again the same issue.
Eventually the home market started, each micro computer also had its own way of doing things.
Then we have the variation across operating systems on the desktop world, and the embedded world where it is bigger than the desktop.
I haven’t seen so much whining about fragmentation as nowadays, and I have to wonder how skilful these whiners are.
Edited 2012-05-17 07:35 UTC
“Fragmentation” of Android is the little picture. It happens when a developers is working on an Android application and is frustrated that his application, tested on his device has a bug on another device. It costs him a little time to fix the bug he had not foreseen and this is a frustration moment. it’s even worse if you have to fix the bug on Monday morning. You swear at the platform and through the word “Fragmentation” at it.
In the big picture, it actually costs nothing and you can support many more devices or you can restrict your application to some specs. The real “Fragmentation” is that there is a whole team dedicated to porting the application to Symbian, iOS, WP, Android and other incompatible devices with incompatible APIs. You have to use several ways of distributing it to support each platform. This actually costs a lot of money. The developer just see his little platform and thinks it is fragmented but in the big picture the fragmentation comes from there being different platforms.
The platform dedicated teams are actually a business model.
In the games industry, that is how the big studios usually work. They have a target platform, and all the remaining ones are done by contractors which specialize in a given platform.
In same way in big enterprise projects, the world where I work. The cost of contractors is peanuts, when compared with the total project cost.
I only see fragmentation being an issue for the bedroom coder.
Yes, actually. all the time.
The diversity of platforms is offen held as an excuse for Windows’ stability problems of the past when compared with OS X.
And the diversity of browsers (and incompatibilities between them) has been a HUGE topic of debate. You’d have to be living in a cave to miss all those arguments!
Nice get out clause
You don’t hear about complaints in regards to PC platforms because things have been relatively stable for the last few years. However once Win8 arrives on desktops, things will be shaken up again and you’ll get a whole new set of topics relating to this issue (just as there was during the transition from XP -> Vista and 9x -> NT).
As for web standards, I think they still are argued more than mobile platforms (remember the countless posts on here about just the <video> tag alone?)
I didn’t say, that there are no arguments, but
– they don’t use this exact phrase “fragmentation”. the different naming suggests, that this is something special for android, but in fact it’s the same issue you have on other platforms, that consist of more than 5 devices as well
– nobody draws the conclusion, that his web/windows thing is inherently doomed because if its diversity.
Edited 2012-05-17 10:45 UTC
1/ Maybe not the term “fragmentation” specifically, but there’s still arguments about essentially the same topic.
I suspect this might be the same point you’re making, however I’m a little confused about your point. Why the emphasis on the term “fragmentation” when the discussions are equivalent?
2/ That is very true.
Edited 2012-05-17 11:19 UTC
This link sums up my dislike of the situation*… I’m gald I got out of the mobile development field before Android became popular, because Windows Mobile was pure hell and there were a lot less devices overall:
http://techcrunch.com/2012/05/11/this-is-what-developing-for-androi…
* which should not be read as a “dislike” of Android. I’m seriously thinking of either an Android or Windows phone next. And I can’t quite like the design of Windows phone enough, even though it is probably the simplest platform for me to develop my own apps for (as I sit in Visual Studio all day…) Having said that, if I find a sweet deal on an N9, I’d be tempted to get one off contract.
Its not as prominent because desktop developers solved the problem years ago.
I somehow never knew about this platform before but their website is really useful. As far as fragmentation, I don’t see that as being a problem but there are some issues with carriers lagging way behind Android release cycle.
Right now there is just 1 or 2 phone on the market in the US running ICS 6 months or so after it launched for ~2% of the market share. It matters.
A friend recently bought a Motorola RAZR in part because the phone was supposed to get ICS in Q1. Now I don’t think the phone is supposed to get ICS till Q3 (a full year after the launch of ICS).
I can see ICS being an afterthought for my phone I got over 2 years ago but if I went out and bought the flagship phone from Motorola today I could see expecting ICS before ~October.
Don’t get me wrong, Android 2.x is still great but they are missing a lot of opportunity.
You’re funny!