I’ve had my iPhone 3G for a few days now, and I’m generally very impressed (of course). I’ve had one crash, but it’s generally acknowledged that the 2.0 firmware has some wrinkles to iron out, and I can live with that - I’m a developer myself, after all.
However, for all of the functionality and inventive, intuitive UI of the iPhone, there’s one area where the phone seems almost primitive: SMS (text) messaging. I’m not sure what the typical usage model for mobile phones is in the US, but here in the UK at least texting is the primary thing we do with our phones. We make and receive calls occasionally, but we spend a vast amount of time texting.
Thus, we’ve come to expect certain features which are standard on almost all phones, but which the iPhone lacks. I’m going to briefly discuss those features, why they’re useful, and where applicable how you can cope with the iPhone’s current (as of July 2008; firmware 2.0) lack of them.
The iPhone takes a somewhat novel (for mobile phones) approach to listing and categorising text messages: that of the conversation. This provides a thread of messages between yourself and a given recipient or set of recipients. Any messages which go to, or come from, that same unique set of recipients is appended to the conversation - it’s not further broken down by units of time or such. The list of conversations looks like this:
And an individual conversation has an iChat-like view with speech-bubbles, like this:
That’s all well and good, and useful for helping jog your memory when writing a reply a while after having received a text, or working out what someone is talking about in a newly-received text. However, it brings us to our first problem.
Overall chronology of messages
Conversation view, because it groups sent and received messages together by unique sets of senders/recipients, is not very useful for viewing an overall chronology of text messages, which is very handy if (for example) you send a text to multiple recipients and then receive a reply from each one of them - such as if you’re arranging to meet up with some friends.
The iPhone really needs its conversations views to be optional, and to have the capability to view a simple list of all text messages in reverse chronological order. There is currently no workaround for this, though if (say) the iPhone happened to store its SMSs in a readable sqlite database in the filesystem, it may be possible for a third-party App Store application to at least provide a view of your texts - but almost certainly not to create or delete them (not without an official API, anyway).
Deletion of individual messages
The iPhone can currently only manage texts at conversation level; i.e. you can only delete entire conversations, not specific messages within them. This is remarkably short-sighted, because keeping a few interesting messages then requires keeping entire lengthy conversations full of mostly trivial texts.
It’s common to want to forward an already-sent text message to a new recipient (or group of recipients), as we do with email. For example, the person I text most often is Lauren, so much so that when I’m sending a text to someone else, I’ve been known to automatically send it to Lauren without really thinking about it, since that’s what I’m used to doing.
On my previous phones, I would simply forward the text to its intended recipient. On the iPhone, I must retype it. I cannot even ask the incorrect recipient to forward it back to me so that I can then send it on, because you can forward neither sent nor received messages to new recipients. This seems an arbitrary lack of functionality, since a forward is simply a new text message with pre-filled content.
The iPhone does not directly (or obviously) allow you to create draft messages; i.e. a message you’ll type now, but will later edit and then send. This is a somewhat stunning omission, since it’s very common indeed to want to draft messages of all kinds in multiple sessions before committing to sending them.
The good news is that, despite appearances, you actually can create drafts… sort of. There are limitations, but it does work. The key point is that you will want to already have an SMS conversation with the recipient(s) you want to write a draft message to. To create a draft, you can simply enter the conversation, type a message but do not send it, then return to the conversations list (or even exit the SMS application entirely). When you return to that conversation, your message will still be there, and remains editable. You can do this as many times as you like, though of course you are limited to one draft per conversation (i.e. per unique set of recipients).
For this reason, even if you routinely delete your conversations, you may wish instead to simply “Clear” their contents (using the Clear button in the conversation speech-bubbles view), but keep the actual (empty) conversation in the list. That way, you can draft a message to those recipients in future.
This all of course assumes that you already have an existing conversation (even an empty one) with the recipients you want to send a message to, or indeed that you already know who you want to send your message to in the first place. Sometimes, however, you simply want to draft a new message, with or without specifying recipients, and come back to it later. You can do this, albeit in a limited fashion.
Simply create a new SMS, type your message, and then press the Home button to exit the SMS application. The next time you launch the SMS app, you will be immediately returned to your message in progress:
The downside, of course, is that there’s no “back to Messages” button in this view, so you can’t return to the conversations list without explicitly Cancelling (discarding) your message. Thus, if you do not already have a conversation in which to put your draft message, once you start writing a draft you will have to finish and send it, or discard it completely, before you can interact with the rest of the SMS application. It’s a nasty workaround, but it could be useful in certain situations.
Note that I’ve filed a bug for the lack of robust SMS-drafting behaviour; it’s #6092643 (that link will only work if you’re an Apple employee).
This is a frivolous one, but I initially missed my T9 punctuation; i.e. the ability to have T9 predictive texting fill in apostrophes when I was typing contractions or possessives in my messages (as you may guess, I’m not one for the god-awful bastardised sub-language that kids use in text messages). I quickly discovered, however, that iPhone’s excellent typing auto-correction actually deals with most common cases correctly.
Specifically, if you’re typing an unambiguous contraction (i.e. one which, if the apostrophe were removed, would not still be a valid word - such as “I’m”), your iPhone will actually insert the appropriate apostrophe automatically. There are still some cases where you’ll have to toggle the keyboard to the punctuation view and insert your own apostrophe, of course (such as cases where typing the contraction without an apostrophe forms a valid word - like “we’re”/”were” or “it’s”/”its”), but generally it’s a big time-saver. So I can safely scratch at least one point off the list.
Update: In fact, there’s also a shortcut for when you’re typing contractions which are still valid words without the apostrophe (such as when you want to type “we’re”). Simply omit the apostrophe as usual, but repeat the last letter of the word, e.g. type “weree” and you’ll get “we’re”, or type “itss” and you’ll get “it’s”. Very handy. Thanks to my mysterious informant at a fruitily-named company which makes shiny computers, phones and music players.
I hope that Apple will address these SMS shortcomings in a firmware update soon, because it’s the only area in which I find the iPhone markedly lacking, and SMS sadly accounts for a large part of my actual daily activity on my phone.
The fixes don’t have to be dramatic, either. Forwarding is simply a matter of adding appropriate UI and a trivial enhancement to the replying code. Allowing drafts could be as simple as creating an explicit “Drafts” section in the conversations list, within which a further list was shown of draft messages, each of which could be edited as normal. Drafts within conversations could have some sort of indicator added to them to show they were unsent, and tapping on such a message would reload it into the message-editing field.
Similarly, tap-holding or horizontally-swiping a message within a conversation could offer the option to delete it. These are all relatively straightforward and self-contained changes which would make a big difference to the phone’s SMS functionality.
Until then, texting on the iPhone can be a somewhat frustrating experience, which isn’t a quality I’d so far tend to apply to any other aspect of the device.