Before watching the iPhone OS 4 Developer Preview event, I jotted down a list of what I thought background applications on the iPhone should be about. (I saw the headlines announcing the coming of multitasking before watch the event.)
I wrote this post in full after watching the event, but I thought of these ideas beforehand.
1. Background Syncing
When I open iPhone Mail, I don't have to wait for new messages to download as the app regularly checks the mail server in the background. When I have finished with Mail I can go back to the home screen and if a message hasn't finished sending then it finishes in the background.
When I open my feed reader, I have to wait a few seconds for the new articles to be downloaded. This is mostly only annoying on slow networks. After finishing writing a note in Simplenote, I always wait for it to sync with the server. I'd like this to happen in the background so I can quit the app and move on straight away.
There is no need for the whole app to run in the background: a sync demon which runs periodically would be fine.
2. Background Processes
This is quite general and includes anything that runs in the background but doesn't use any screen space. Examples are Pandora, a GPS logger or a voice recorder. Again, the whole app does not need to be left running: just the logging demon or music streaming demon.
The main difference between this category and and background syncing is that these would be started and stopped by going into the relevant app, while sync demons would start and stop without any user interaction.
How could these background processes be managed? An apps could pulse or shake or glow its home screen icon to indicate it is running something.
If apps had this capability, the scope of what is possible on the iPhone will become much larger.
3. Push Notifcations
We already have this. I have never received a push notification and I am glad, since I hate being interupted. Actually, home screen icon badges are okay. I wish text messages only pushed themselves as an icon badge.
With Push Notifications, there is no need for a background process on the iPhone at all. Instead it runs on a server.
4. Perfect State Saving
If you select some text in iPhone Safari then leave the app and come back, the text will still be selected. The experience is much better when things stay how you leave them, like in the real world.
One way to achieve this is to leave the application running. Possibly this could be achieved more efficiently by giving an app a few seconds to archive it's state after the home button is pressed.
5. Fast App Switching
Apps also need to be able to rapidly unarchive their previous state, preferably in the time it takes to show the zooming in animation when pressing an icon on the home screen.
This can mostly be achieved with fast hardware. For a really smooth experience, I think apps needs to be able to change the static image shown while they are loading (the default PNG).
6. Two Apps on screen at once
This is the strength of the desktop computer. It enables drag and drop between applications, which is exceedingly powerful and easy. However, the iPhone works so well showing one thing at a time. I like it the way it is in this regard. Even with the extra screen space of the iPad, I do not think two apps at once is something we need.
What about an instant messaging bar at the bottom of the screen which shows new messages and can be slid up to send replies? This is multitasking in the brain and I think it is bad for you. (Not a scientific opinion, just what I've found from experience.)
Hopefully soon, I shall post my thoughts on Apple’s list of the seven important background process services on the iPhone.