Yesterday was Apple’s big announcement – iPhone OS 4.0. There was a bunch of new features announced, including the long awaited – multitasking. If you want to follow the announcement, check out live.gdgt.com.
There’s a lot of focus on multitasking these days, so I wanted to run through what Apple announced and what it means for developers and the applications you use every day. Apple’s focus was to find a way to allow multitasking but without allowing background processes that end up killing your performance and battery life.
“How are we adding multitasking while preserving battery life and performance. We looked at tens of thousands of apps in the app store, and we’ve distilled the services those apps need to run in the background. So we implemented those services, and we’re providing those services as APIs to developers so they can add multitasking while preserving battery life.” – Scott Forstall, SVP of iPhone Software via live.gdgt.com
The announcement goes on to define the seven (7) background services they are providing – Background audio, Voice over IP, Background location, Push notifications, Local notifications, Task completion, and Fast app switching. These are the only multitasking services exposed to the developer. Let’s quickly run down what each one of these can do for you:
- Background audio – obviously, great for listening to music while using other applications
- Voice over IP – pretty straight forward again, great for services like Skype
- Background location – this will enhance applications like FourSquare as the app can automatically grab GPS co-ordinates while you’re not actively using it. Also a great advantage for turn-by-turn directions.
- Push notifications – this has been in the product for the last 9 months,
- Local notifications – this is based on the push notifications, but there is no server, they are local to the phone
- Task completion – this allows the developer to put a task in motion and forget about it. For example, think of uploading a large file. The developer could code the app to upload that file in the background and this frees up the user to browse away from that screen. There doesn’t appear to be any way for the application to interact with that process once it’s launched. So it would effectively run to completion or until it times out.
Those are the only multitasking processes allowed at this time. While they are pretty nice features, there’s still no way for me to open my RSS reader, start it updating and then switch to email or browse the web while it downloads in the background. It’s great that Apple has released multitasking, but to be clear, it’s not full on multitasking. It’s a limited scope of features. This approach allows them to keep tight control over processes and applications and ensure that the device remains fairly stable. Perhaps Apple will release more ability in the future, but for now, there is limited multitasking ability.
Apple also seems to think that there’s no need for a task manager. This could prove to be a problem as they’re letting developers spin off task completion treads but there’s not way for the end user to manage those. If they hang or maybe there’s too many being generated by an app, there’s no way to kill that process.
More details should be coming out over the next little while as developers download and test out OS 4.0.