As long as the iPhone had been out, we had been wishing for multi-tasking. Well, at least those of us overly-geeky enough to have a certain need to be satisfied. Most consumer would probably care less about it.
But there are at least two main cases which I can see multi-tasking can be helpful. Or rather, the proper term to use for this is background processing. Having the 'application' run in the background.
There are a few radio applications in the App Store (though sadly we don't have anything like Shazam or Pandora in Singapore). We really really would like a way to have the radio music carry on playing, just like iPod, even when the application is 'closed'. Imagine an SMS come in, and you launch the SMS. Your music that was previously playing would stop, because the application is considered to be closed! Surely, there must be a better approach.
Well, Apple surely could allow a simple new API call to allow application to register their music for background playing. And at any one time only a single stream of music (and associated application) could use it. And it would carry on playing even after the application is closed. Not too much to ask for, is it?
Another case is data download. Sure, Apple argued that Push Notifications is a more elegant solution. But when I use the in-built Safari browser, I really want to like, open up multiple pages, wait for them to finish loading, and read them one by one. From what I feel or observed, when I switch to a different page, the old page stops loading. And sometimes the memory gets swapped out.
You would argue that people only need to read one page at a time. Sure, that's what I'm doing. But as I read, I want to be able to go to the next page immediately, without waiting for the page to be downloaded. The download should happen in the background, and if I am on a computer, that's what I am doing. Opening the new page in the background so that I can read it next. Erm, yes, I have a slow ISP (or rather not fast enough). I could go blame them too...
So, beside Safari browser, another case which I might need background data download is my rss reader with Google Reader, using byline. Byline helps to cache the web page offline for quick read, and I set it up to do that for new items. But, as far as I know, this does not have push notifications, and it probably does not make sense too. I do not need byline to keep notifying me of all the news every second. It should behave like the manual fetch settings for my email accounts. Check every, say, 15 mins and download new content.
Could Apple not come up with a restrictive API for that? Queue an app to connect to the internet to download new content? It's technically possible, but because of battery drain and user experience, they are not doing that.
Maybe they could move the responsiblity to the consumers. Just like how applications ask to enable push notifications and GPS location checks, ask to enable background processing too. Let them know that it will affect battery power. Give background processes much lower priority so that they do not affect the running exclusive apps.
It's really very troublesome to do manual download of content, or open an app just to listen to music. When I launch an application, I want it to be ready for my use. Immediately. Not having it stay opened so that it can be in the process of 'getting ready to be used'.