From: zoara on
Note: when I talk about multitasking here I mean in the sense of users
being able to do two things at once, which the current iPhone only
manages in a minor sense (playing iPod, sending and receiving mail and
SMS in the background etc) rather than the sense of the OS running
several tasks at once.

----

Apple seem to have "faked" multitasking on the iPhone et al in such a
way that users don't have to worry about what apps are running. When you
start a new app the app you were just running is "frozen", consuming no
CPU and just the RAM that it was using; apps should "tidy up" (saving
state or whatever) in the same way they currently do when the home
button is pressed. This is so that if the system needs more RAM then the
frozen apps are removed from memory without warning, oldest first. The
user doesn't need to manually "quit" apps, and will not see out of
memory messages, CPU slowdowns or battery drains. Tapping on a frozen
app restores state from memory, giving the impression that it's been
waiting in the background (ie no loading time, no "back to the
beginning" etc).

The concessions Apple has made to multitasking are:

- task completion: an app can have a few minutes to finish that upload,
download, thumb-twiddle or whatever before being frozen.

- background music: an app can play music in the background. Presumably
(as Pandor was demoed, and it's a is a streaming service) it can also
pull data down from the network?

- background VOIP: an app can listen for incoming VOIP calls

- background GPS: this comes in two forms. One is that the app gets
alerted when the phone has moved more than a certain distance, something
like 1km? I'm not sure how; I guess the entire app is unfrozen and
informed. This uses cell tower positioning so doesn't eat through
battery life. The other form is that the background app is continuously
told the exact position, using the GPS chip. This is for sat nav apps -
presumably the can also do voice prompts from the background.

Now, with all these concessions, battery life, CPU and memory are all
impacted, but in most cases it isn't much - certainly not enough for the
user to have to get involved. Task completion is potentially
high-resource but is restricted in time. Background music and VOIP are
low-resource so leaving those running forever is probably not a big deal
(though if the app is streaming that is different; perhaps Apple will
disallow background streaming and enforce caching (through task
completion?).

But the biggie is the background sat nav. You kick off your TomTom, head
off on your journey to the hotel, maybe switch to a music app on the
way, get to the hotel, check your email for the reservation number,
check in, and collapse on the bed.

All that time the GPS chip is running, sapping battery. How does the
iPhone avoid this? Will we have to manually quit sat nat apps using a
"quit" button in the app? Will users have to have the "double-tap home
button" function explained to them, then the "hold finger on running
app" gesture, then the "tap minus sign to quit" explained?

If this is manual - however it is done - then we end up with two classes
of apps; the "just use and don't worry" ones, and the "this one is
special and needs special treatment" ones. How will a user know that
some apps need to be treated differently? How will a user know *which*
apps should be treated differently? Or do users just suffer from random
(from their perspective) sudden battery drains until they work out what
is going on?

-z-