As I am prone to do with any gadget purchasing decision, I’ve been agonizing between the Pre and the iPhone 3GS.
Those who like the Pre like to point out that it can multitask: it can run more than one “card” at a time, and you get some interface to switch between them. This comes in handy, for example, if you want to an internet radio app while browsing the web with the browser app. On the iPhone you can’t quite do this (though you can let the built in iTunes-based music app play in the background).
As I played with a friends Pre, I started using it like I use my desktop. Opening one application after another, not really thinking about how much memory was left. (When’s the last time I’ve seen an out of memory error on a modern machine?) On the Pre, however, it’s fairly easy to hit the memory limit. Seems to me like it takes about 4 browser windows and maybe a couple other apps.
Once you get into the out of memory state, things get annoying fast. Any action that would require a new card seems to freeze for a second, then the phone buzzes and tells you there’s not enough memory, and that you need to close other cards.
Which card to close? Well, if you’re a programmer, you may know that browsers are likely to eat the most memory out of the various kinds of apps you find a phone, so lets kill those first. Swipe to the card view.. and which of these cards are browsers? Actually, sometimes, it’s quite hard to tell, especially since you’re looking at thumbnails of web pages that can look like other apps.
In any case, the first time I hit this, I closed one card, then retried the operation. Still failed. Closed another, retried, still failed. Realized that there were still two other browser cards open, closed those, and finally I could open up my new contact.
The problems here are numerous.
- I don’t know when I’m about to hit the memory limit, and when I do it takes a while for the phone to tell me I have.
- Recovering from the state is difficult, especially for users who may not know which apps take a lot of memory.
- There’s no way to tell if I’ve closed enough cards. There’s really no way for the OS to tell, since there’s no guarantee that you’re going to retry the same operation after you’ve closed some cards.
In light of my experience, Apple’s decision to disallow multitasking on the iPhone doesn’t seem so dumb. Sure they make some things inconvenient, but it also prevents users from getting into a situation that probably 90% of them would have a difficult time dealing with. It would be a huge usability hit, and the relative benefit would be rather small.
I guess until we have swap space on phones, multitasking is going to be something that will be difficult to implement usably, and I wouldn’t be surprised if Apple continued to limit it significantly.