iOSのAction Extensionについて
iOSのAction Extensionのメモ。
ActionとはApp Extension(拡張機能)の1つです、画像の赤枠の部分がActionです。
拡張機能で有名なのはShare Extensionです。ActionとShareの使い分けはリファレンスによるとActionがコンテンツの処理で、ShareがSNSへの共有やアップロードを想定しているようです。
Actionのリファレンスはこちらです、Archive扱いで更新は終了しているようです。
Extensionの構成
Actionの実態はExtensionと呼ばれるアプリ本体とは独立して実行される個別のバイナリ(ターゲット)です。Extensionを作成するにはアプリに新しいターゲットとしてExtensionを追加します。1つのアプリに複数のターゲット(Extension)を追加できます。
Extensionを含むアプリのことをContaining appと呼びます、Extensionを呼び出すアプリをHost appと呼びます。
Understand How an App Extension Works より
アプリを配布するときはExtensionを含むアプリをAppStoreに送信します。アプリ本体をインストールするとそれに含まれているExtensionもインストールされます。Extensionのみの配布やインストールはできません。Extensionは本体のアプリをインストールすると自動的に有効になりますが一部のExtensionは設定で有効にする必要があります(Todayウィジェットなど)。
Extensionが起動しているときもアプリ本体は起動していません。Extensionとアプリ本体が直接やりとりはできません。App Groupsなどの仕組みを使うことでリソースを共有してアクセスを可能にします。リファレンスではExtensionからアプリ本体を呼び出す方法としてURL Schemeを使った方法が説明されています。
Understand How an App Extension Works より
制限
Extensionではカメラやマイクへのアクセスなどの一部のAPIは使用できません。
調査はここまで。実装は別の記事で。
Discussion