記事

App Extensionをサポートするためのコード構成

バックエンドサービスをプライベートフレームワークに移動し、AppとApp Extensionがサービスを使用できるようにします。

概要

App ExtensionはAppの代理としてふるまうエージェントで、依頼に応じてサービスや情報をシステムに提供します。App ExtensionはAppの動作を拡張するので、Appが使用するのと同じバックエンドサービスやデータにアクセスする必要がしばしば生じます。

AppとApp Extensionがサービスを共有する場合は、以下のようにコードを構成することを検討してください。

  • 中核となるサービスを、プライベート共有フレームワーク内に実装する。プライベート共有フレームワークを使うことで、サービスにアクセスするためのコードを1つのコードモジュール内に配置し、そのコードを複数のターゲットから使用できます。共有フレームワークによって、両方の実行形式ファイルの容量を最小限にできるだけでなく、両方の実行形式ファイルが同じコードパスを使うのでテストが容易になります。

  • 共通に用いるリソースを共有コンテナに収容する。AppとApp Extensionが使用できるように、関連する画像ファイルおよびデータファイルを共有コンテナに収容します。各ターゲットの「Capabilities」タブで、共有コンテナのサポートを有効化してください。

関連項目

Siri Intents

Intents App Extensionの開発

XcodeプロジェクトでIntents App Extensionを追加および構成します。

Intentを適切なhandlerオブジェクトに振り分ける

SiriKitに、特定のIntentを処理できるオブジェクトを提供します。

Intentのリゾルブとハンドル

Appのサービスに対するユーザーリクエストをリゾルブ、コンファーム、ハンドルします。

protocol INIntentHandlerProviding(英語)

Intentを処理するカスタムオブジェクトにIntentを振り分けるインターフェイスです。

Extension関連のクラス(英語)

Intents Extensionのビルドに使用するクラスについて説明します。