iPhone review part 2: PIM
PIM stands for Personal Information Management, one of the key features of any smart-phone. I am perhaps rather spoiled by coming from the Palm world, which is generally very highly regarded for the quality of its PIM applications. But even so, the iPhone is supposed to be better than the Palm, and it certainly competes with Palm - even if Palm haven't released a new smart-phone in years - and so I think it's fair to compare the two.
There are three main categories of data that a PIM needs to handle: a diary, a list of contacts, and to-do lists. A modern smart-phone also normally adds email. Of those, to-do lists are completely missing from the iPhone. The list of contacts is done well, and integrates nicely with the phone side of things and with email. The diary is adequate, although with problems, and the email client is just awful.
Thankfully, you can fix one of those problems by downloading one of many third-party to-do list applications from the App Store. I chose Toodle-do, mostly because it's about the cheapest you can find that has the crucial feature of notifying me when one of my tasks is overdue.
The diary works, but has one fairly serious problem compared to the Palm. Namely, it isn't possible to add an alarm to all new events by default - you have to remember to add them by hand; and when you do add an alarm, you are restricted in when you can have them. In the Palm world, you can set an alarm for anything between 1 and 99 minutes, or 1 and 99 hours, or even 1 and 99 days before an event. On the iPhone you are restricted to 5 minutes, 15 minutes, 30 minutes, one or two hours, or one or two days. Ludicrous! It's especially ludicrous when the iPhone does in fact support other alarm times, you just have to set them using iCal on your desktop. How hard could it have been to let the user set them on the phone too?
The email application is just terrible. And it could be fixed so easily. When you configure it to use an IMAP mail server, the first thing it does is scan all the folders it can find, and build up a tree of what's available so that you can then subscribe to those mailboxes you want to have on your phone. Trouble is, if like me you have a lot of mailboxes (and things it thinks are mailboxes but aren't, they're just stored alongside them) it takes a long time to build that tree, and sometimes the app crashes. Worse, if it does successfully build the tree, it then displays it with everything fully expanded. This is obviously unusable when there are several thousand items in the tree it has erroneously built! A simple solution, one used by other clients such as Thunderbird, would be to only scan the level of the tree that is currently selected. This would save memory (which is in short supply on the iPhone) as well as improving the user experience by making it appear faster and be easier to navigate. Thankfully, it can cope with a Gmail account. And while I would never use Gmail to receive mail - what? give a company that might lose interest in the service, in a foreign country which has no effective privacy laws, access to all my personal mail? I think not! - it's usable for sending the occasional message.