There is a lot written about fragmentation on smartphone platforms. I just wanted to add my 2 cents to the story by giving some details from personal experience on the Android platform (as a user). Furthermore, I think it is interesting to bring Nokia into this conversation, as it will be having potentially a big problem with this as they will be supporting two different smartphone platforms.
When it comes to fragmentation, Android comes up a lot in the discussion. I understand that having different versions of the OS and different screen resolutions can cause some applications to work better on one phone than another. However, the story is a lot more complicated than that, I found out.
I personally own a Google Nexus One (N1) and a Samsung Galaxy S (SGS). The Nexus One was my wife’s and the SGS was mine. I started out only using the SGS and I have to say I sometimes came away with feeling that some applications worked quite poorly on (on paper) pretty stellar hardware: The scrolling would be far from smooth, load times would be slow and there would be significant lags between screen input and the application doing something.
After experiencing that for some time, I figured I’d give a try installing some of those applications on my wife’s N1 and to my surprise they would work just so much smoother. Though I’m sure this is not the case for every application, these 3 examples were very clear from my point of view:
- Touiteur. This is my favourite twitter application, but scrolling and particularly loading (and fetching) new tweets was a pretty poor experience on the SGS while on the N1 it was great. I should say that Level Up Studio did update the application recently, and it improved the situation for the SGS substantially. When inquiring with them, they told me over twitter that the SGS ROM was quite a mess to work with and that it took optimising.
- Twidroyd 4, my second favourite twitter client. Twidroyd recently released version 4. I immediately tried it on the SGS, but switching from portrait to LivePreview in landscape mode would take 5 seconds on the SGS and it would behave strangely. It made the app’s best feature unusable. In turn, on the N1 the switch was almost instantaneous and it worked smoothly.
- Remember the Milk. While working Ok it always felt a little sluggish and slow… a little like Web Run Time apps on Symbian… it works, but slowly. Again, on the N1 it works so much better.
For your information, about a week and a half ago I switched phones with my wife and have had consistently better experiences on the N1.
It is possibly not a surprise that applications work well on the N1, as it is the developer phone. However, I did find it surprising that the same app can work quite a bit worse on a phone with very similar specs. This can’t be good for developers, of course, as it implies increased work or worse user experiences.
I also wanted to add Nokia to this discussion, because they are facing a very particular situation. They have explained that they want to cover the whole smartphone market with Symbian for the mid to low end of the smartphone market while MeeGo will have to compete on the high end. Though not the same as with Android, this could cause developers a headache.
Both Symbian and MeeGo are open sourced operating systems that can be used by different handset manufacturers. Nokia will use both platforms on different hardware specs, I reckon. In order for applications to run, they’ll be using 2 different programming languages on top of the operating system which should allow an application written in those languages to be easily portable from one OS to the other. Those two languages are Web Run Time (WRT) and Qt.
In theory, this sounds like a good way to solve potential fragmentation issues when using different hardware specs and operating systems for your smartphones, but anyone that has used a run of the mill Java app will tell you that the results may not be very impressive. Supposedly things should be different with Qt and WRT. Recently I have read three examples (some good, some bad) of applications that I wanted to highlight:
- Foursquare for Nokia. It is apparently written in WRT. On the Symbian^1 devices it runs terribly slow, but perhaps on the newer Symbian^3 handsets, with way better hardware specs, it runs fine – this video demo certainly looks ok.
- X-Factor: this application is written in Qt, which should be better performing than WRT, however the reviewer clearly states that this is an example of how not to do it.
- Orange Wednesdays: This application, while also being written in Qt, is a good example of what is possible.
I must add a caveat, thoug: I have only seen these applications run on Symbian. It still remains to be seen how easy and well they are ported to MeeGo, but I am hopeful.
To sum this all up. Apple is certainly in the lead in terms of limiting the fragmentation of their platform. Android, on the other hand, still has some challenges ahead, even when using the same OS and very similar hardware specs. I guess it is no surprise to read that at the moment iOS has the most potential for developers, though developers seem to trust things will get fixed for Android in the future. Nokia is a whole different story. In theory they have it all thought out, but we’ll have to see how it pans out in reality.