As an iPhone user one of the 'missing' pieces in my user experience (apart from cut and paste) is the inability to properly use Instant Messaging (IM) on this platform.
The demand is certainly there as evidenced by the popularity of the AIM application that has been available in the iTunes application store since its launch and the appearance yesterday of a Palringo client which proved so popular that the website handling registrations for this multi-protocol client service crashed within a few hours of the application appearing (to be replaced with a text message acknowledging that their website problems were directly related to the sudden flood of new enquiries they'd received from iPhone users).
While these applications are interesting they are both, through no fault of their own, missing the point of IM. Isode builds and markets an IM server (M-Link) based on the protocol that is the clear winner in the IM standard war, XMPP.
The eXtensible Messaging and Presence Protocol contains in its title the reason why iPhone IM clients can, at the moment, only provide half of a solution.
For while they allow for Messaging, unless the IM application is the only application that the user is using their iPhone for, it cannot fulfill the presence part of the equation (the iPhone does not allow third-party applications to run in the background).
Whereas a real iPhone IM client would enable you to multi-task (it is after all very likely that you'd be available for an online chat and listening to music or reading a website at the same time), iPhone IM clients allow for only two real status indicators:
- I'm running the IM application only and can set my status to indicate my willingness to chat.
- I'm not
A pity, and hopefully something Apple will correct soon.
A really clever iPhone IM application would of course integrate presence (online, offline, away, do not disturb etc) with geolocation services (I am online and at *this location*) taking advantage of the iPhone's GPS capabilities. Given the current enthusiasm for location based services, I'm certain that this cannot be too far away - let's hope that developers looking into this remember to use the correct Open Standards approach for this.