From day one, Apple has kept a staunch “no background processes” policy on the iPhone, claiming that the preservation of battery life is their main motivation for doing so. As a result, you need to open an application for it to check for new data, like new e-mails or items in an RSS feed.
Push notification is the answer to this issue which will arrive in iPhone OS 3.0, allowing programs to receive notifications from a server even while they aren’t running in the foreground on the device, and notify the user accordingly.
The catch? Developers will need to supply their own infrastructure to do this.
I’ll use a Twitter client as an example. Existing Twitter apps simply use Twitter’s API to fetch new messages whenever you open the application or hit a refresh button. To receive the same messages via push notification, the developer would need to set up their own server to retrieve the messages and push them to your device.
Even for an application with 1,000 users, the infrastructure requirements involved with doing this are far from trivial. For a hugely popular application, you’re looking at a multiple servers and some smart technicians on the payroll, or a hefty bill each month from a cloud computing provider like Amazon.
Long story short, don’t expect your favorite free (or cheap) applications to implement push notification any time soon – it certainly doesn’t appear to be a coincidence that Apple announced a subscription model for applications at the same event that push notifications were announced.
As to why Apple don’t allow users and developers the choice of running applications in the background, simply warning them as to the fact that this will decrease battery life? After all, the existing choice of whether to enable or disable Wi-Fi connectivity is a trade off between useful functionality and battery life. Well, the cynic in me immediately figures that Apple’s 30% cut of each paid app or subscription payment equates to money in the bank, whereas providing bandwidth and storage on the App Store for popular, free applications equates to the opposite.