[iPhone SDK] Only One iPhone Application Can Run at a Time...
Users can only run one application at a time, and if they leave an application it quits. That doesnít seem like a big deal, but it means that you canít switch away from an application and have it continue to do things. Thatís a big issue with the current support for websites on the iPhone - as soon as you leave the browser the connection is broken. With the iPhone, the hope was that an installed application could continue to run in the background and, most usefully, gather and send information from and to the web.
Only one iPhone application can run at a time, and third-party applications never run in the background. This means that when users switch to another application, answer the phone, or check their email, the application they were using quits. (p. 16)
This will be a serious problem for some developers. For example, say a developer wanted to take location information from the iPhone (created via the iPhones cellular triangulation feature) and dump it into FireEagle to keep track of where youíve been. Well, that wonít work unless you keep the application open at all times, and donít use the iPhone for anything other than that. Another example: instant messaging applications (we saw a demo of an AIM version at the event today), canít run in the background and collect messages while you are doing something else. Leave the application to take a phone call, and it shows you offline. The bottom line is - any application that wants to periodically interact with the web to do stuff, wonít be able to on a continual basis.
Perhaps future versions of the iPhone, with additional CPU and memory resources, wonít have this limitation. But for now, whole classes of applications are useless, or are significantly less useful than they otherwise would be.
The AIM thing is a big disappointment. Not sure how taxing an AIM application can be while you do other thing with the phone. I can understand that once a call comes in the EDGE connection drops, but shouldn't you be able to use other apps that are not EDGE dependent while you have a session of AIM (or any other client) running?