Exactly. Just don't know if it works for the things I mentioned, for the reasons you mentioned (camera image and GPS location change constantly, so how often do you trigger notifications? In some situations I can imagine it being better to set up timer events for regular polling. BTW, another example is the mic input. Another, too, is the accelerometer, though in practical terms hooking the "shake" event is probably good enough).
Wouldn't the notifications need to work the other way.
Say for a GPS app with turn by turn when it plans a journey, it could feed the Notification system a whole bunch of location triggers. Starting with a board range trigger like cell tower names. So when you get in range of that cell tower turn on GPS and start tracking rough location. another event in the chain might kick up the resolution of the GPS when you get closer still. the final event in each turn is the one that fires up the app to let the user know to turn the corner. So in the journey of a thousand miles the app would keep itself running in the last few miles each end but a log the way could shut it self off.
Real multitasking means two things to most peoplewhich achieved WITHOUT real multitasking:
1. Background audio (Pandora)
1. Fast switching between apps (or windows)
(Actually it means more than that, like the ability to get IMs when youre in another app. But the iPhone already does those things. Push is a great, efficient solution. The UI for it could stand to evolve though.)
Id love to see an Apple API for #1. The full Pandora wouldnt be running at all times, but an audio stream would be incoming. The API should allow a double-click on the home button to being up a custom control panel for ANY audio, not just the iPodand the panel should allow an ad, so that Pandora can still pay for itself.
#2 is a two-edged sword, since running too many things at once bogs DOWN your device. Some UI tweaks and OS magic to make apps launch faster (dump them to the flash drive to sleep them?) could help that without the wast involved in real multitasking.. And the ever-faster hardware in iDevices.
If this rumor turns out to mean actually keeping a bunch of apps RUNNING at the same time in the traditional sense, then I think it may be a 4.0 feature for iPads ONLY (and/or for FUTURE iPhones that are more powerful than todays).
I'd add a third.
Things like GPS, SIP clients, even maybe IM clients.
Yet again i think these could all be improved by an in device Notification Server. The full app doesn't need to running just the bit which watches for events.
Yes this works ok for most with the Apple hosted solution but there is always going to be one or two things that will work better with the same idea hosted on device. So they can be location aware or direct connected.
Think about an office situation. We'd love to have our iPhones set up to be handsets in our PABX. The only solutions at the moment require our PABX to send notifications to a 3rd party to relay to Apple to push to the device.
But IF the device had server inside that could talk to our own server then it really shortcuts the process makes it safer and more secure. Also allows for the PABX presence system to work. In that the device could know if it near the office by local cell tower names. Then turn on Wifi see if it can see the office network. if not turn off try again in 30 secs. When it can connect via wifi then log in to the PABX server. At that time the light on the receptionist phone goes green to say I'm in the building.
I think this situation is also similar to the streaming audio. In that it wants to hook in to the device Phone program in the same way Pandora wants to hook to the audio controls.
So the Phone app could introduce a "Lines" API and the media Player and "Channel" that hooks in a third party stream to each of them.
If they could get those working say via small background processes they could have very strict rules on those processes like only being allowed to run for a time period.
Isn't LaunchD meant to handle all sorts of conditional background processes including when to shut them off?
That would to me go along way to reducing the need for fast app switching.