My new phone, 2012 edition

For some time now I’ve been growing increasingly dissatisfied with my Nexus S. Those of you who follow me on Google+ may have seen a number of discussions on this point. So I was thinking about a new phone, and here I’ll lay out my thoughts.

Warning: this will be long.

Obviously the choice is between iPhone and Android. Now, I’ve been an Android user for some years now; started with the HTC Hero, then a Google Nexus One, then (when I fell over while ~~I was drunk~~it was icy on Christmas Eve), a Google Nexus S. My desire for the Nexus line was because I don’t particularly like the “added value” that Android vendors add to their phones, and because Nexus phones, because they’re from Google themselves, are designed to exhibit the latest cool stuff in a given Android release and therefore get that Android release before other stuff.

So, iPhone or Android? Android or iPhone? Much thought went into this process.

And then I bought a Nokia N9, which runs Meego of all things, a mobile OS which is neither iOS nor Android.

Herewith, a conversation between me and interlocutors both real and imaginary to try and answer a bunch of questions about my mobile phone choices. I should note up front (and this is important): I am not trying to convince anyone else of anything here. This is what I think, and why. If you read this as me telling you that your choices for yourself are wrong, then you’re misreading it. But feel free to read it as me telling you why your choices for me are wrong, and then feel free to disagree if you want.

You did what? What the hell is an “N9”?

Before Nokia got into bed with Windows Phone 7, and believing that Symbian wasn’t really up to the challenge of modern smartphones, they made their own mobile phone touchscreen OS, called Maemo. Then they partnered with Intel and turned that into “Meego”. Then, both companies dropped the project, pretty much; Nokia went into Windows Phone, and Intel are doing something called Tizen. But in that brief interregnum Nokia released a phone called the N9, which ran this Meego thing (and a phone called the N950, which was an N9 with a hardware keyboard and was aimed at developers).

The phone itself is beautiful, too. It feels the right weight in my hand, it’s blue rather than boring black, the screen’s precise and sharp, and it doesn’t have old-Android-esque hardware buttons because it doesn’t need them. Like it, a lot.

Why get some obscure phone, though? The market is all Android and iOS.

Interestingly, it turns out that I don’t really care about the market, here, because where the market is means two things: further development of the OS, and quantity of apps available for the phone. And I just don’t use that many apps. I’ve had a smartphone probably as long as you have, gentle reader, and I was trying to batter previous phones into being smart-ish enough to let me read books and see the web before that. I don’t say this to somehow push geekier-than-thou credentials, but to show that I have a number of years of my own smartphone usage to analyse. And that has shown me that I primarily use the following things, in roughly descending order of usage: a web browser, Twitter, an epub reader, email, an audiobook reader, a music player, a calendar, wakeup alarms, a camera, Google+, Foursquare, Google Reader, a remote for my bedroom media TV, Youtube, SMS messaging, Shazam, and a couple of little games to while away spare minutes when I don’t fancy reading. And that’s, basically, it. I had tens of apps installed on my Nexus S and they just didn’t get used.

And, importantly, every phone in the world either has those things as native apps or, tantalisingly, they’re available as web apps. I did a talk a couple of weeks ago at a Multipack Presents session in Birmingham where I exhorted mobile app developers to consider building web apps when they can, instead of leaping for a native app and limiting themselves to one platform, and this was a chance to try practising what I had preached.

Web apps? They just aren’t as good as native apps, man.

That’s part of what I’m investigating, here. I’m using the web for, from the above list, the web browser (obviously), Twitter, email, Google+, Foursquare, Google Reader, my XBMC remote, and YouTube. I’ll also be using it, soon, as my music player and audiobook reader and epub reader, but I need to write those first ;-)

Part of the reason I’m trying to use web apps for this stuff is exactly to discover what the limitations are. One pretty big one is: a web app can’t do things while it isn’t running. Another one, which has become pretty clear to me over the last week, is that Android’s support for using a web app like a real app is really annoying; “installing” a webapp by bookmarking it to your home screen is irritating, and Android has a bad habit of just opening that bookmark like a web page in the browser, not like a separate app. Finally, while the promise of the web is that it can talk to native things and work with non-web stuff, that’s not really there yet; it’d be impossible to implement Shazam on the web, without Flash, right now, although it’s getting there. The Nokia “Browser 8.5” is excellent; it appears to be pretty much just as up-to-date with supporting modern web stuff as Android or iOS, it’s webkit-based, and even if it wasn’t there’s a preliminary build of Opera Mobile, so that’s all OK.

But, in general, I’m finding the experience of using web apps only a little behind the native experience for well-written careful native apps, and as far as I can see, a lot of that delta is because we just don’t have as much experience writing apps which work brilliantly in a mobile browser; we’re still working it out. So I’m happy using the web.

Why are you not using an iPhone? Everyone except geeks has an iPhone

Main reason is this: no-one can convincingly say that I will never, ever, ever need iTunes. Recent versions of iOS are much better in this regard — updates are over-the-air now, for example, and initial registration doesn’t need iTunes any more — but when I asked questions like “what if my iPhone breaks? Do I have to plug it in and do an iTunes thing? What if I take it into the Apple store and tell them I don’t have iTunes?” I didn’t get very convincing “no, you will never need iTunes” answers. Maybe it really is true that I don’t need it and I just didn’t hear from the right people; maybe it isn’t quite true yet but will be in iOS 6. I’ll doubtless be looking at a new phone again in a year; convince me then.

Small side issue: as far as I can tell, it is not possible for me to make apps for iOS without a Mac. Not even PhoneGap apps.

You can have iTunes; just dual-boot into Windows or buy a Mac and run OS X and then run Ubuntu in a virtual machine

No thanks. I’m an Ubuntu user. Not interested in running anything else. I have noticed that a fair few Ubuntu users who also have iPhones aren’t really Ubuntu users; they’re OS X users who also run Ubuntu sometimes. That isn’t me.

You don’t need iTunes; just download libiphoneconnectorframework from github and then gtk-make-my-iphone-work from this Sourceforge site and then compile this kernel module to connect and…

No thanks. I’m sure that it probably is possible to have a totally iTunes-less life of iOS with entirely open-source stuff, and I completely respect the people working on that, but I’m just not interested in fighting to make my hardware work. My days of doing that are past. It’s not you, it’s me.

Why are you not using Android? ICS 4.0 is great!

I didn’t like ICS. My Nexus S has not yet had an official rollout of Android 4.0, which is annoying in itself, by the way; it’s only a year old! It’s the next-most-recent Nexus model! It’s officially Google-branded! Why can’t it run the latest Android OS! Grr! But ignoring that, there was an unofficial build, which was the official build until it turned out that there were battery life problems with it. So I installed that. Now, I had battery life problems, indeed (serious ones; I’d walk out the door with my phone fully charged at 7pm and sit in the pub drinking and playing on Twitter and the phone would be dead by midnight, which is unacceptable), but I’ve been convinced that they are a bug and not a fundamental problem. My fundamental problem with Android, now, is this: I don’t like the direction it’s going, and I found ICS uninspiring and disparate and bitty and incohesive*.

What do you mean, incohesive? ICS has had a full makeover!

No it hasn’t, and that’s the point. There are some nicer design elements in Android 4.0, but they only show up in some places. Most apps don’t use them. It’s still totally unclear what the back button will do in an app. Some apps have ICSed themselves and therefore don’t use the hardware buttons any more; others have not yet made the move; others still seem to try to detect whether I have hardware buttons and use them if so. I am sure it is possible to make a beautifully consistent set of applications for Android, but it just hasn’t happened; Android has the same problem that Linux always had, that for a long time there was no strong design lead-by-example, and now that there is you still have large portions of the Android community who don’t like it, don’t want to fit in with it, and consider that a virtue. Perhaps it is a virtue, but not for me. The much vaunted Android “fragmentation” makes this a little more difficult; it is harder to write an Android app when you have to do extra work to design Back functions into your UI if there’s no hardware button, and not if there is, but I don’t think fragmentation of hardware is the real issue; fragmentation of design aesthetic is the problem, and there is very little indication that the Android app dev community want to fix that, even if Google’s design team do. Again, you may consider this a feature rather than a bug, and that’s fine; I do not.

But Android is Linux! It’s the great hope for open source! You should use it!

My N9’s Linux, too. And it’s a lot more similar to my Ubuntu machine than Android is. Apps use D-Bus, they can be written in Python if you want, the widget set is Qt, etc, etc. Lots of open-source-desktop stuff in there.

Oh so you’re using this Meego thing because you’re a freetard?

Nope. I looked at the phones available to me, and the N9 came up on top, for reasons that this exceptionally long set of Q&As attempt to outline. That the system is, under the covers, pretty similar to my Ubuntu machine was a factor, but a relatively small one; what I found most compelling about that was that I was pretty confident that it’d work with Ubuntu without problems, which has indeed turned out to be the case. That it’s “Linux” qua Linux didn’t really enter into it.

Meego’s abandonware and unmaintained. Why are you tying yourself to a dying or already dead OS?

Now, that’s an interesting point. There seems to be a fairly vibrant, although small, developer community, and there seems to be a group at Nokia still working on this; a few days ago I received, OTA, the latest new version of Meego. It’s also excellently documented; the web apps documentation in particular was a hugely motivating factor in convincing me before purchase that the N9 would do what I want.

That’s not what I meant. It’s basically maintained by the community. That’s no good.

So is Android, dude. Like I said above, there is no official Android 4.0 for my Nexus S, the flagship Google phone until about three months ago. Let alone my daughter’s LG Optimus One, which still has Android 2.2 (or possibly even 2.1, I’m not sure) and no sign whatsoever of getting an upgrade. I used to be relatively confident that sticking with the Nexus line would get me the new shiny, and now I am not; the Nexus One doesn’t have ICS, the Nexus S doesn’t have ICS, which means buying a brand new Galaxy Nexus to get it… and presumably buying a Nexus Next Generation a year from now to get Android 5.0 Jelly Bean.

Yes, I can use a custom ROM; I can install Cyanogen and get updated Android versions, I can download one of a zillion ports from XDA. But then… that’s a community maintained version of the OS, no? Just like Meego is.

I need Android because I’m tightly wedded to the Google ecosystem. Aren’t you?

Well, my N9 is perfectly happily using mail, calendars, contacts, RSS reading, and Plus from Google. What else does it need? It’s a little easier to set up on Android, I’ll certainly admit that — sign in once, and everything works, and that’s lovely — but it wasn’t hard on the N9 either.

It’s not just iPhone and Android. Why aren’t you using WebOS/Windows Phone 7/Blackberry/Boot2Gecko/Symbian/something?

~~Palm~~HP webOS: I like webOS a lot, but you cannot buy it on a phone without a hardware keyboard. I hate hardware keyboards. Sorry.

Blackberry: Hardware keyboard, again. I also didn’t investigate Blackberry all that hard; there is an idea in my head that there is a Blackberry without keyboard and with a modern browser, and that would have been an alternative. Let me know if there is.

Windows Phone 7: I like Windows Phone 7 a great, great deal, and I came very close to buying a phone with it on. One of the things I really like about it, like webOS, is that it’s not just an iOS copy like I think Android largely is; they sat down and thought about a new and interesting way to work with a phone, and they did in my opinion a damned good job. I find WP7 easy to use and beautiful, and I was very tempted. But… it does not work well with Ubuntu. You can’t even plug it in to an Ubuntu laptop and copy files onto the phone; it doesn’t use MTP (which everyone knows how to talk, even if imperfectly) but some weird undocumented Microsoft extension called “mtp-z” which we have no idea how to use, and some bloke is having to reverse-engineer on github. Of course there is a Windows driver, and there’s a “Mac connector”, but nothing for Ubuntu. It’s also, like the iPhone, as far as I can tell impossible to build apps (even PhoneGap apps) for it without a Windows machine. So, no. I tried talking to an MS guy about this at CES, and he was all “no we do Windows and the Mac and that’s it, so you’re out of luck, goodbye”. So, goodbye, Windows Phone. For extra credit, the best WP7 phone on the market right now is the Nokia Lumia 800, which is… my N9 with Windows hardware buttons on it.

Symbian: it can, in theory, do everything I want; I had a Nokia E50 before I went Android. But it’s in my opinion just not up to the challenge of running a slick touchscreen experience.

Ubuntu Phone: doesn’t exist yet.

Boot2Gecko: does not exist as a phone I can buy, yet. Ignoring that I’m a bit disappointed that the UI is just an Android copy, for now, maybe I’ll get a B2G phone in a year when the phone exists. I like the mentality underlying it a lot.

OK, so I can see how you, Stuart, find the N9 a good fit for what you want. So, what’s wrong with it?

Well… here’s a list of things I’ve found to be less than perfect in my first two weeks of use. Here’s hoping the software ones, at least, get fixed.

It doesn’t do HTML5 audio. Or, rather, now that I have had the latest version of Meego sent to me OTA, it sort of does; an audio element becomes a button which you can press, and which opens up a full-screen audio player rather like the full-screen video player. Which is of course sod all use if you’re trying to build an HTML-based audio player or audiobook player. Grr.

The text selection stuff is not great. Weirdly, it seems like bits of the N9 know how to do this right; you get a little magnifying glass showing where your finger is, and you can move the cursor perfectly, but most text fields don’t do this. WTF, Nokia?

No Shazam. :(

No PhoneGap port, yet, although a bloke is working on it, hooray!

The outside buttons (power, volume) feel a tiny bit more flimsy than they should.

It’s a sealed unit, so I can’t put in a new battery. Honestly, this doesn’t actually bother me, but maybe it will in the future. Gonna get one of those in-the-pocket charging thingies, so that’ll alleviate that problem. Recommendations for good ones are invited.

No Ubuntu One port, yet, so I’m using the website. I shall be fixing this (see complaints about HTML5 audio and no PhoneGap port for why I have not already done so; I’m working on it. :))

You didn’t answer my question…

Go ahead and ask it. I’ll try.