Well, that’s not entirely true. It works perfectly well as a traditional text messaging replacement. To a point.
The first problem with iMessage is its lack of awareness.
It’s a simple broadcast bus (think back to parallel connectors used to transfer data between components or computers). At its launch, Apple admitted that iMessage runs on top of its notifications engine (based on XMPP).
But that’s the problem: it’s treating messages — two-way communication – as what seems to be one-off, one-way bursts. It all syncs, which is great as you’re able to be messaged or message (should that be iMessage) from whichever Apple device you’re using at the time. Great idea. Bad execution.
iMessage is not aware which device you’re using at the time. So you end up receiving piles of notifications on your other devices you’re not using.
It’s a classic problem that affects all messaging services. Try running two Skype sessions from two different devices and see what I mean. But because iMessage is built into iOS, Apple should know which device we’re working on and which is active.
There aren’t any obvious technical hurdles standing in the way of solving this. The chief problem, one would suspect is that its incredibly difficult to scale, considering this would have to be done against hundreds of millions of iOS devices in the world.
Coupled with this “awareness” problem (which Apple is surely working on) is the issue of Apple knowing which messages you’ve already read when they are later delivered to a device that wasn’t connected to a data network at the time. In the case of the text-message replacement use case, they’re delivered as SMS and actually bypass the iMessage system if you’re not in an area with data coverage.
Being able to receive messages on multiple devices is very useful, but there’s a hierarchy and identity structure that hasn’t been fully thought through here.
At one point, my iPad and iPhone were receiving different messages from a friend’s iPad and iPhone depending on which of each other’s identities we were using.
It’s this identity Apple uses which, because of the iPhone, is possibly most problematic. This is the second main problem with iMessage.
Your iMessage service is linked to your Apple ID. Which is fine if it wasn’t also a text message replacement service which uses your phone number. This is what the mass market would use it for. In fact, they probably won’t realise they’re using it until they see their savings on SMS charges.
So now your two ”identities” are somehow merged. But they’re not. Because any messages sent to your Apple ID arrive on all your devices, but messages sent to your phone number only arrive on your iPhone. And messages sent from a certain origin identity (either your number or Apple ID) also sync differently. Any user sending a message to someone rightly expects that message to be delivered. If you’re sending to someone’s Apple ID (even from your phone) and they have an iPhone, the message won’t be delivered if they’re not in data coverage. Matt Galligan illustrates some of the insanity in a post.
So there’s a complex identity issue here for Apple to solve.
And what of FaceTime? It’s not hard to expect FaceTime and Message (or iMessage) to merge in the next year or two. Already, FaceTime is (sort of) integrated into the beta Messages app for OSX.
And what about the Apple ID of the future?
Surely we get to a point where our Facebook ID or Apple ID or Google ID usurps everything else (especially phone numbers)?