[29 May 2010] Google has added Cloud to Device Messaging to Android 2.2 which allows you to remotely activate an application.
A multitasking world
I've been porting my iPhone app, Travel Check, across to Android but have hit a bit of a stumbling block in adding one feature - notifications of expiring travel cards.
What's that I hear you say? We're in a multi-tasking world and can use Status Bar Notifications to alert the user. Indeed we can and it's a great system but with one huge flaw - your application needs to be running, something that you cannot guarantee at all. A user could have rebooted their phone, Android killed your process due to memory constraints or any other number of reasons.
So what to do?
Well not much from what I can see which is proving to be a challenge. Hopefully someone can open my eyes and reveal exactly what I'm missing here as I'd love to offer this feature. You can only run so many applications at a time on a smartphone and to design a notification system that relies on your application running at startup is not great. Apple knows about battery life and has realised that having applications running in the backgroung making many outgoing connections between them to check for updates is not something that should be done. But then again having that available to you is good as well.
Well between Apple and Google we've a perfect notification system. Android offers an elegant Growl-like notifications that let you unobtrusively alert the user to events while Apple has a system that does not require any specific application to be running. Neither is perfect but both get the job done.
I see notifications as a core service and if you're offering them then they need to be integrated with a server-based solution so as to cover the common scenarios. An XMPP-based solution that applications could subscribe to for notification events would be ideal. It's then only one connection that the phone maintains and the minute updates are received the payload could be sent through to the registered application to act upon.
It would seem that Palm have their Mojo Messaging Service in beta which which is an exact solution that I need on Android. No doubt Apple and Google have something similar in mind?