iPhone review part 4: Apps and the App Store
In previous installments I have touched briefly on the App Store and on multi-tasking. I shall now criticise in more depth.
In the past, I have criticised attempts to put Linux (for example) on phones, saying that for the sort of limited user interface that is possible on such a small device, a full-blown multi-user OS like Linux is pointless overkill. I now realise that I was - at least a little bit - wrong. While multi-user is indeed pointless, with multi-user comes multi-tasking, which is far from pointless. Yes, a small screen means you can only realistically expect to see one app at a time, but that doesn't mean you don't want to have more than one running at a time. On the iPhone, some of the built-in apps can run in the background, demonstrating that it can indeed multi-task*. And this is useful. I can, for example, start a large web page downloading, then switch to another app for a bit, and then when I later switch back to Safari, the page has loaded. Most apps wouldn't benefit from this. There is, for example, nothing for my to-do list to get on with when I'm not interacting with it. But some apps really would benefit from being able to run in the background. An ssh client, for example, for those times when I want to switch to another app to look up a password.
There is no good reason for Apple to prevent third-party applications from being backgrounded. Oh, people might talk about there being insufficient memory to run lots of applications at once, or how much battery it would suck, but those are bogus arguments. Safari will let you have as many complex web pages open as you like, sucking up all the memory, and you can run the battery-hungry iPod application in the background. And if resource constraints really were a problem, it could always notify the user when he asked his phone to do something it couldn't.
Onto other matters for which there is no good reason for Apple to behave the way it does. The App Store. Unless you jailbreak your phone, the only way to get applications onto it is via Apple's online "App Store". And to get your app onto the App Store, you need to pay Apple an up-front fee, let them vet your application, and - if you charge for the application - pay Apple a percentage. Of these, only the third one is entirely justified.
First of all, the up-front fee: this supposedly acts as a barrier to keep free crap off the phones. But it doesn't. There are lots of crappy applications, both free and payware. And in any case, that's what Apple's application vetting procedures are meant to be all about. All the fee does is prevent people from giving away really good apps. On PalmOS, there were loads of really good free apps, often very specialised. One of my favourites was Tide Tool, which I used to figure out when would be a good time to go to the beach. I know that if I had a similarly cool app that I wanted to give away, I wouldn't pay USD100 for the privelege.
Second, their vetting of applications: this would be a good idea if done right. For example, someone's first application should be vetted rigourously for spyware and bugs, and it's reasonable to expect this to take a certain amount of time - even several weeks. Second and subsequent apps should likewise be vetted for obvious bugs. But Apple also take several weeks to approve of bug fixes. Within the first week of me getting my iPhone, I reported serious bugs in two applications. One crashed and lost data under certain circumstances, the other is a public transport route-planner that contained out-of-date routing data. That was two months ago. Both application authors thanked me for the bug reports. Both apps are still buggy, because the fixed versions are still awaiting Apple's blessing. So because of Apple's disfunctional "quality control" vetting procedure, Apple's users are at danger of losing their data and being sent to the wrong places. They really need to sort that out.
But notwithstanding all those criticisms, there are some very good applications available. I'll list just a few of them that I think you might find useful:
- To-do list. Shouldn't need to exist because this functionality should be built-in to the phone, but it's very well done and integrates very well with the same company's online service;
- London Bus
- Route planner for London public transport. Not just for buses, although it has special features for them, it also works for tubes and trains, looking at timetables to find the quickest route for your chosen departure/arrival time;
- Ebook reader. Can talk to Project Gutenberg servers to download books on the fly, and has a desktop companion app for putting your own texts on it;
- Car Care
- Track fuel usage and costs, and service intervals;
- Secure store for usernames/passwords. Desktop companion app can also import/export databases;
- The excellent online supermarket now lets you add stuff to your shopping basket and place orders from the phone;
- ECB Cricket
- Live scorecards from internationals and English domestic first-class games. I'm really surprised that Cricinfo don't have something like this, but their app is rubbish, only covering internationals;
There are also loads of good games. I found this quite surprising, but the iPhone turns out to be a very good video games platform. This is mostly because it is so resource-constrained - a small screen, limited controls, limited CPU - that game designers are concentrating on game play again, and not just on who can shit out the most pixels per second in yet another tiresome sub-standard overly-complex Doom-clone with eleventy-million controls. I'm particularly fond of Flight Control, Harbor (sic) Master, Geared, Tower Bloxx, and Brick Breaker, all of which are dirt cheap and I encourage you to visit the EVIL BROKEN HATEFUL App Store and check them out.
* if you jailbreak your phone, other apps can be made to do this too