説明書を読まなくても使い方がわかるのが、iPhoneの魅力であり強みです。しかし、知っているつもりでも正しく理解していないことがあるはず。このコーナーでは、そんな「いまさら聞けないiPhoneのなぜ」をわかりやすく解説します。今回は、『iOS 8で「アプリ間の連携」が可能になるとはどういうことですか?』という質問に答えます。

***

WWDC 2014の基調講演は、ハードウェア新製品の発表はなくソフトウェアの新技術に関する説明に時間が割かれていました。特にiOS 8は、4000の新しいAPI(プログラムに使用できる機能群)が投入されるということもあり、駆け足と言っても言いすぎではないほどの勢いで技術紹介が行われました。

そのiOS 8向けアプリ開発ツール群(SDK、Software Development Kit)の紹介は、「Extensibility」という用語から始まりました。これはiOS 8の新機能というより「機構変更」に近く、iOS 8におけるアプリ間の連携を可能にし、アプリに「拡張性」を与えるものです。

iOS 8ではアプリ間で機能を融通できるようになり、拡張性(Extensibility)が大幅に向上します

これまでiOSでは、アプリの利用を許可するにあたりシステムの安全性を重視してきました。App Storeから入手したサードパーティー製アプリは自由に実行できますが、iOSのシステムや他のアプリと切り離された環境で実行され、基本的に他のアプリとの通信/連携は認められません(URLスキームという方法はありますが、かんたんなデータを渡すことしかできません)。写真(カメラロール)や連絡先などいろいろなアプリで共有できるデータはあるものの、ユーザが許可を与えないかぎりアクセスできません。その構造は「サンドボックス」と呼ばれ、iOSの高い安全性を支えてきたのです。

しかし、サンドボックス構造があるがゆえに、アプリAの機能をアプリBで使う、といった「アプリ間連携」は不可能でした。iOSはアプリより下の階層で動作するソフトウェアの導入をサードパーティーに認めてこなかったため、ハードウェアを動作させるプログラム(デバイスドライバ)や、他のアプリに機能を提供する日本語入力システムのようなシステム常駐型プログラム(サービス)が存在しないことは、そんなAppleの方針が理由です。