(__Attention conservation notice__: 800 words documenting the near-perfection of the iPhone user interface. Plus a small suggestion for how they could improve it still more.)

Things the iPhone does that I’ve not seen anyone else do:

* There’s a ‘.com’ button when you’re typing in a field that accepts domain names (like an email-address field, for instance). I only realized recently that you can press and hold the .com button to get .net, .edu, .org, and .us.

* It gets cooler. Add an international keyboard (Settings -> General -> Keyboard -> International Keyboards -> Add New Keyboard…), then go back to an URL field (like in Safari, say). Suppose you added an Arabic keyboard. Now look at what the .com button has: top-level domains for Arabic countries, like .ae. Similar things happen if you add French keyboards, etc.

* Spell-check will not flag words if those words are in your address book. It does better than just not flagging them, actually: if you type a friend’s name in lowercase, it’ll correct the case for you.

* Probably most every iPhone/Touch user has noticed by now that you can go into the Maps application and start typing the name of someone in your contacts for whom you have a physical address; the Maps app will offer you any matching physical addresses.

You’d expect — or at least, *I’d* expect — Google to get this right, too. After all, when you’re signed into your Google account, Google knows about your contacts; it should be easy enough to carry that contact information over into Google Maps. But they don’t.

* This next one is easier to describe by example. I have a friend, Chris Rugen, whom I’ve jokingly put into my iPhone contacts as “Chris Rügen”; my iPhone contacts sync with Google. In the iPhone, if I start typing “rug”, it offers up “Rügen” as a completion — even though the “u” that I typed has no umlaut over it.

I’ve found no other system that does the completion this intelligently. Thunderbird doesn’t. Google itself doesn’t, either: searching within my Gmail contacts for “rugen” doesn’t return the accented contact. In either Thunderbird or Google, I need to start typing Chris’s actual email address — which contains no accent, of course — in order for them to find Chris.

These are all just little things, but that’s *exactly* what makes the iPhone what it is: nearly all the little things are done perfectly. You get a sense of calm when you play with an iPhone (and “play,” by the way, is exactly the right verb), because nothing is out of line with what it should be. Computers have a habit of steadily accumulating frustrations; the iPhone does not.

One thing the iPhone does need to do differently is related to the Archive button in the email client, which only arrived in one of the new iOS releases (I want to say 4.0). If you have a Gmail account, the Archive button will do the same thing on the phone that the Archive button does on Gmail’s website. That’s great. But there’s no Archive operation available for non-Gmail accounts. Worse, the Archive button gets replaced with a delete button for non-Gmail accounts. So if you’re used to archiving messages by tapping the leftmost button, muscle memory alone will often make you delete messages accidentally. This gets especially to be a problem now that iOS 4 does a single combined universal inbox: you don’t know which account a given message is coming from (could be Gmail, could be not), so the very same inbox view can sometimes make that button do archival, sometimes do deletion. It’s a dangerous combination. (Though not too dangerous: you can always retrieve the deleted message from the Trash, if you notice soon enough that you deleted rather than archived.)

What’s odd is that fixing this to work with all account types wouldn’t be that hard, unless I’m missing something. Right now you can configure which folders on your remote server will be used for drafts, sent mail, and deleted messages: go to Settings -> Mail, Contacts, Calendars -> [account name] -> Account Info -> Advanced and look under Mailbox Behaviors. If the folders you’ve specified don’t exist, I believe the iPhone mail client will create them. It would be easy enough to add an ‘Archives Mailbox’ item under there.

I can see a reason why they might not do this. Gmail’s archives folder is called ‘All Mail’ on the server side, so a sensible default name for the archives folder would be ‘All Mail’. But on a non-Gmail account — IMAP, say, or Exchange — maybe that name would be confusing. Maybe on those sorts of accounts, it would be smarter to call the folder ‘Archives’. But then you’ve got an inconsistency between the name of the archives folder on different types of server; that may confuse users.