iPhone 4.0 Multitasking and Daemonization
One feature I’m looking forward to in iPhone 4.0 OS is the potential inclusion of background tasks and daemons. The Android OS has this in a (relatively) poor implementation, and through jailbreaking I’ve been experimenting on it with my 3GS.
The potential downside to multitasking is errant processes drawing down the battery. Those of us with laptops are familiar with the sinking sensation when we lookup in the title bar and see our batteries depleting faster than normal, only to fire up Activity Monitor and find it was (usually) Flash causing this, or something similar. Lately it’s been Growl.
My suggestion for multitasking on the iPhone is for Apple to allow “slots” that the user can assign applications to. Applications would have two stats: daemonized and running, which would let the programmer do two different normal thread run cycles. Foreground and background basically.
As for presentation of running state, Apple is going to have to create real estate that is the forward facing UI for background tasks. The top bar on the screen could work, given more PPI real estate. The lock screen is an obvious choice, but I also think Apple is going to seriously have to alter how the Springboard works to accommodate a richer device experience that isn’t so isolated into “app to app” modalities.
One of the shortcomings to iPhone OS and one of the nice things about Android is that Android treats its OS as a hierarchy, from the base level OS (represented by widgets, notification, home screen, etc) down to the application level. iPhone is more decentered. Springboard is relatively inert, while the applications have more root functionality. The only hierarchical system that the OS has is push notifications, which in its current form isn’t highly optimized.
OSX is a hierarchical OS with menu bar, dock, desktop and dashboard as its top level modalities. It’ll be interesting to see how this translates to the iPhone OS.