Ever since iPhone SDK got released, we have seen a lot of requests from customers wanting us to build iPhone apps. Naturally, we have loved to oblige -after all, we love hacking on new platforms.
The biggest problem, however, was not being able to run background applications, which KOed out a lot of neat things one could do, especially for location related apps. At the keynote today at WWDC, Scott Forstall said this:
(image credit: Engadget)
quoting from engadget's live blogging:
There has been one feature request that doesn't currently exist... it's mainly come from clients like IM, where by their very nature they want to get a notification even if the user isn't running the app. We absolutely want to solve this problem, the question is how?"
The wrong solution is to enable background processes... to allow an app to continue to run even after their user thinks they quit it." Windows Mobile, we're looking at you. Why's it bad? "First, battery life, it drains power. Second, performance, it sucks up cycles and makes other things feel sluggish."
"We've come up with a far better solution -- a push notification service Apple will provide to all developers.
Apple will maintain a persistent IP connection to the phone, where a 3rd party server can ping Apple's notification service to your device. It can push badges, sounds, and custom textual alerts (like how SMSs look).
"The great thing about this: it scales... it's a unified push notification service for all devs. It preserves battery life and maintains performance. And it all works over the air -- WiFi and cellular. Available in September, but next month we'll be seeding to devs. This has been an update of the SDK, thank you!"
Ah ha. So Apple is now going to give us developers a means to 'wake up' applications based on a trigger that is user defined. So while it's nowhere as good as offline background processes, at least we can now have an option to 'wake up' from external triggers, so I guess we could implement a reverse polling process, at least.
Naturally, it all depends on how well apple manages to keep the IP pipe alive (example, is it _only_ IP? is there any way for that notification to arrive even if IP gets lost, but some other bearer channel (non IP) is open ?
So let's see. Time will tell.. when it actually gets rolled out in a few months..