Re:Spacetime alarms
by blasdel on Friday October 16, 2009 @09:01PM
(#886464)
Apple is never going to expose straightforward background processes, as it's way too late to switch to a Pre-style 'card' model that would make it natural. Fortunately there's a solution that's complimentary to the "no background processes" restriction that I'm sure some cretins at Apple have at least mocked up, if not implemented:
They just need to expose specific interfaces to launchd (Apple's clever init/rc/cron/xinet replacement), for doing particular kinds of local notifications. An app could register (with user confirmation) that it wants to have a limited helper run when an event has occurred: cron-style schedules, at-style timers, "Moved more than X meters", "Am near X:Y", etc. The registrations would be managed just like with the current push notifications.
With that, there'd be only a few other APIs needed to absolve the want for background processes. The ability to enqueue HTTP requests would make quite a number of apps friendlier to multitasking, and its already implemented privately in MobileSafari. The ability to play audio in the background would be huge, especially combined with queued HTTP requests, but I suspect that it'd be a lot harder to squeeze out of Apple.
They just need to expose specific interfaces to launchd (Apple's clever init/rc/cron/xinet replacement), for doing particular kinds of local notifications. An app could register (with user confirmation) that it wants to have a limited helper run when an event has occurred: cron-style schedules, at-style timers, "Moved more than X meters", "Am near X:Y", etc. The registrations would be managed just like with the current push notifications.
With that, there'd be only a few other APIs needed to absolve the want for background processes. The ability to enqueue HTTP requests would make quite a number of apps friendlier to multitasking, and its already implemented privately in MobileSafari. The ability to play audio in the background would be huge, especially combined with queued HTTP requests, but I suspect that it'd be a lot harder to squeeze out of Apple.