38
iPhone 4.0のマルチタスクの仕組み

Appleは木曜日にiPhone OS 4.0を発表した際、iPhone OSの主要な追加機能を象徴する7つの「テントポール」を披露しました。木曜日に注目を集めた点を踏まえると、今回のiPhone OSアップデートは6面のテントの真ん中に、まさに巨大なポール、つまりマルチタスクが搭載されていると言えるでしょう。

この待望の機能はiPhone OS 4.0でついに登場しますが、多くのユーザーが予想するよりもはるかに繊細で綿密な実装となっています。Appleは、アプリ切り替え機能とOS自体が管理するバックグラウンドプロセスを組み合わせることで、マルチタスク(複数のプログラムを同時に実行できる機能)の外観を実現しています。iPhone OS 4.0には、目に見えるかどうかに関わらずアプリがフル稼働するという、より伝統的な概念は追加されていません

「(マルチタスクは)バッテリーを消耗させる形で実装するのは実に簡単です。フォアグラウンドアプリのパフォーマンスを低下させ、スマートフォンの動作を重く感じさせる形で実装するのも簡単です」と、スティーブ・ジョブズは木曜日に記者団に語った。「私たちは、マルチタスクを実現し、こうした問題を回避する方法を見つけました。」

コンテキストスイッチ

iPhoneはマルチタスクに対応していないと文句を言う人が、必ずしもiPhoneで複数のアプリを同時に使いたいと切望しているわけではありません(時にはそう思う人もいます。これについては後ほど詳しく説明します)。いいえ、iPhoneの生産性を大きく阻害する要因は、ユーザーがタスクを実行するために複数のアプリを使わなければならない場合があることです。例えば、メモを調べながらメール、Safari、メモを切り替えなければならないなどです。そして、アプリを素早く切り替えることはiPhoneではうまく処理できません。ホームボタンを押し、ホーム画面から次のアプリを探し、その新しいアプリを起動し、目的のアプリまで移動し、そして元のアプリに切り替えるために同じプロセスを繰り返さなければなりません。

iPhone のホームボタンを 2 回タップすると、アプリの下にアプリ スイッチャーが表示されます。

AppleがiPhone OS 4.0にマルチタスク機能を追加したと発表した際、注目すべき機能の一つは、実はよりスマートなアプリ切り替え機能です。ホームボタンを2回押すと、画面下部からDockのようなウィンドウが立ち上がり、最近使用したアプリの一覧が表示されます。一覧からアプリをタップすると、そのアプリが起動します。ホーム画面に戻ることなく、素早くアプリを切り替えることができます。

Appleはこれに、アプリ開発者向けの新しいツールセットを組み合わせ、アプリが「開いて終了する」(現状ではアプリが唯一できること)以外の操作を実行できるようにします。これにより、アプリをフリーズ(停止)させることができるようになります。Appleの上級副社長スコット・フォーストール氏によると、アプリは「バックグラウンドで静止状態」に保たれます。この状態の鍵となるのは、アプリがユーザーが中断したところからすぐに再開できることです。厳密にはマルチタスクではありませんが、作業場所を失うことなく複数のアプリを素早く切り替えたいユーザーのニーズを満たすでしょう。

バックグラウンドタスク

しかし、切り替えと復元には限界があります。アプリがフォアグラウンドにないときにも、何かを実行させる必要がある場合もあります。そこでAppleは、アプリがバックグラウンドでタスクを実行できるように、開発者向けにいくつかのツールを提供しています。その1つはおなじみのもので、1年前にiPhone OS 3.0で導入されたプッシュ通知システムです。残りは新しいものです。バックグラウンドオーディオサービスにより、PandoraやMLB At Batなど、オーディオを提供するアプリは、ユーザーが別のアプリに切り替えている間も再生を続けることができます。このサービスは、電話がロックされているときにホームボタンをダブルクリックすると、一時停止、次へ、前へボタンが表示されるなど、iPodアプリケーションで既に使用されている使い慣れたコントロールと統合されています。

サポートされているもう一つのバックグラウンドタスクはVoice over IPで、木曜日に行われたSkypeのデモでその実例が紹介されました。インターネット電話サービスSkypeは現在、最前面に表示されている場合にのみ通話の送受信が可能です。しかし、iPhone OS 4.0の新しいシステムを利用することで、ユーザーが別のアプリに切り替えてもSkypeや類似アプリは接続を維持できるようになり、会話を継続できるだけでなく、着信も引き続き受けられるようになります。

iPhone OS 4.0では、あなたの現在地を知りたいアプリも強化されます。現在、位置情報に基づく機能を備えたGPSアプリやソーシャルネットワーキングアプリは、アプリを開いた時のみあなたの現在地を把握できます。今回のソフトウェアアップデートにより、GPSアプリはデバイス内のGPS受信機を常にオンにし、閉じた状態でもあなたの位置情報を追跡できるようになります。さらに、曲がり角が近づいていることを知らせてくれる機能も搭載されます。

GPSの使用には膨大な電力が必要となるため、ソーシャルネットワーキングアプリはGPSデータにアクセスできません。その代わりに、AppleはiPhoneが携帯電話基地局を切り替えた際に、ユーザーの位置が変わったことをソーシャルネットワーキングアプリに通知するシステムを開発しました。

これらの位置情報機能には、プライバシーに関する様々な機能が備わっており、どのアプリがあなたの位置情報を利用できるかを制御し、アプリによる位置情報の利用を個別に承認または禁止できます。さらに、過去24時間以内にどのアプリがあなたの位置情報を盗み見ていたかを確認できるので、不意を突かれる心配もありません。また、バックグラウンドで位置情報の追跡が行われている間は、iPhoneのステータスバーのバッテリーアイコンのすぐ横に小さな矢印が表示されます。

Appleは、今やお馴染みとなったプッシュ通知機能に加え、新しいローカル通知システムを追加しました。プッシュ通知ではイベントをスマートフォンに送信するために外部サーバーが必要ですが、この新しい通知はスマートフォン自体から発信されます。Forstall氏が挙げた例によると、テレビ番組ガイドアプリは、お気に入りの番組が始まる前に通知を通知することができます。これは、アプリが動作していないときにも事前に通知を設定できる機能のようです。開発者がiPhone OSにマルチタスク機能を搭載させたいと考える理由の一つでもあります。

タスク完了は、マルチタスク機能の新たな追加機能の一つで、iPhoneでおそらく経験したことがある問題を解決します。それは、使用中のアプリが何かの処理の最中だったため、ホームボタンを押して別のアプリに移動しても安全かどうかわからないという問題です。Forstall氏は、Webに画像をアップロードしている最中のフォトアップローダーアプリを例に挙げました。タスク完了を利用することで、ユーザーがアプリを切り替えても、アプリは実行中の処理を完了できるようになります。(これは、「バックグラウンドで静止状態に入る」という概念、つまりアプリがカーボナイトで凍結される前に実行中の処理を完了する機会が与えられるという概念と密接に連携した機能だと考えています。)

マルチタスクiPhone

では、これらの新機能は、iPhoneアプリのバックグラウンド実行に関する開発者とユーザーのあらゆる問題を解決するのでしょうか? 特定のアプリの特定の使用法など、これらのシステムでは解決できないエッジケースが依然として存在する可能性は高いでしょう。今年の夏のアップデートがリリースされたら、詳細がわかるでしょう。

しかし、これらの機能を iPhone OS 4.0 に導入することで、Apple は、サードパーティ製アプリがバックグラウンドで実行できないという最も顕著な問題、特にアプリの切り替え、オーディオのストリーミング、位置認識の問題に対処したようです。