I’ve become accustomed to the single-app model of the iPhone OS. Most (good) apps save their state when they are terminated so jumping from one app to another feels a lot like they are actually running concurrently. I understand the security benefits of the single-app model and I appreciate the fact that it allows the iPhone to guarantee maximum resources to the currently running application.
I do realise that this model limits the usefulness of some applications (audio streaming & IRC spring to mind) but simply taking the desktop multiple user process model and dumping it onto a mobile device is not a step forward.
So I propose these two possible models for running concurrent applications:
Continuously Running Apps
An application could be loaded as a continuously running application so it would behave in a similar fashion to the iPod application which is always running. A new page in the Settings app would allow you to specify which application/s this applies to. A limit of perhaps only a few applications would be enforced so as to provide a reasonable guarantee of application resources. The icons for continuously running applications would be highlighted with a glow so as to indicate their special status.
In almost all cases you don’t want the whole application running anyway. You usually just want specific pieces of functionality to able to respond to inputs like network requests or perform tasks on a schedule. Developers could separate these functions out into services using a similar mechanism as OSX services.
iPhone OS Services could have very strict resource limitations and be restricted to a maximum number running as to minimise the effect on system resources. These services would be installed/uninstalled with the application and be running continuously. Applications that provide services might also have their icon highlighted in some fashion to indicate their special status. Developers would be expected to provide a means of toggling the active state of an applications services and also to provide a reasonable description of the service’s function. iPhoneOS Services would be be subjected to screening as part of the iTunes App Store approval process.