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