アーキテクチャのレイヤリングと API の命名

Jetpack Compose A2UI レンダラは、適切なレイヤを選択して構築できるレイヤード アーキテクチャを定義します。セマンティック レイヤリングに加えて、明確な命名スキームは API の意図を伝え、可視性を制御して、不要な内部型でクラスパスが汚染されるのを防ぎます。

API は、ユースケースと可視性に基づいて、次の 2 つの主要なカテゴリに分類されます。

  1. アプリとコンポーネントのデベロッパー向けの API: 直接使用を目的とした公開 API には、A2ui 接頭辞(または MaterialA2uiA2uiTest などのデザイン システムとテストの接頭辞)が付いた、簡潔でわかりやすい名前が付けられています。例: A2uiCatalogA2uiComponentA2uiException
  2. UI フレームワーク インテグレータ向けの API: コアデータレイヤと UI フレームワークをブリッジするライブラリで使用される API には、A2uiCore という接頭辞が付いた説明的な名前が付けられています。これらの API は、アプリケーションが直接参照することを意図しておらず、標準のアプリケーション コードからは隠されたままです。たとえば、A2uiCoreCatalogA2uiCoreDataModelA2uiCoreSurfaceModel などがあります。

コアデータレイヤには両方のカテゴリの型が含まれているため、2 つの別々のアーティファクト(androidx.a2ui:a2ui-model(アプリ デベロッパー向け)と androidx.a2ui:a2ui-engine(フレームワーク インテグレータ向け))に分散されています。この構造により、フレームワーク ライブラリは実装依存関係として a2ui-engine に依存できるようになり、A2uiCore 型が公開アプリのクラスパスを汚染することを防ぎます。

カテゴリ 1: アプリ デベロッパー API

次の表に、アプリケーションとコンポーネントのデベロッパーを対象とした公開 API を示します。

androidx.a2ui:a2ui-model

タイプ 説明
A2uiSurfaceModel UI サーフェスを表す読み取り専用インターフェース
A2uiMessageProcessor 受信メッセージを処理するためのエントリ ポイントの型
A2uiMessageParser プロトコル メッセージのパーサー インターフェース
A2uiServerToClientMessage 着信したメッセージ ペイロード
A2uiSchema コンポーネント プロパティ スキーマの定義に使用される型
A2uiException レイヤ間でスローおよび処理される例外
A2uiUserAction ユーザー操作の結果として作成されたアクション ペイロード
A2uiClientToServerMessage すべての送信メッセージ ペイロードの基本型
A2uiActionInterceptor データレイヤレベルのユーザー アクション インターセプタ
A2uiFunctionDefinition ローカル クライアント関数の定義
A2uiDataPath JSON ポインタ パスの表現

androidx.a2ui.compose:compose-runtime

タイプ 説明
a2uiRuntimeMessageProcessor メッセージ プロセッサの拡張機能コンストラクタ
A2uiMessageParser メッセージ パーサーの拡張機能コンストラクタ
A2uiComponentState リアクティブ コンポーネントの状態を表すインターフェース
A2uiComponentModel 正常に解決されたコンポーネントのデータモデル
A2uiComponentProperties 再コンポーズを最適化する安定したプロパティ コンテナ
A2uiProperty 厳密に型指定されたコンポーネント プロパティの定義
A2uiComponentScope バインディングと子コンポーネントを評価するためのレシーバー スコープ
A2uiComponentReference ネストされた子コンポーネントを解決するためのポインタ

androidx.a2ui.compose:compose-ui

タイプ 説明
A2uiCatalog カタログを定義するためのインターフェースと拡張機能コンストラクタ
A2uiComponent Compose コンポーネントの実装を定義するためのインターフェース
A2uiComponent(構成可能) コンポーネントの UI を出力するコンポーズ可能な関数

androidx.compose.material3:material3-a2ui

タイプ 説明
A2uiSurface サーフェスをレンダリングするコンポーザブル エントリ ポイント
materialA2uiBasicCatalogV1 マテリアル 3 コンポーネントを使用する Basic Catalog のインスタンスを作成するためのファクトリ関数
MaterialA2uiBasicCatalogV1Defaults 基本的なカタログのデフォルトのマテリアル 3 実装

androidx.a2ui.compose:compose-ui-testing

タイプ 説明
A2uiTestController テスト実行をオーケストレートするテスト コントローラ
A2uiComponentStub スタブ化またはオーバーライドされたコンポーネントの実装
A2uiTestSurface テスト サーフェスをレンダリングするコンポーズ可能な関数

カテゴリ 2: フレームワーク インテグレータ API

次の表に、フレームワーク インテグレータ向けの API を示します。

androidx.a2ui:a2ui-engine

タイプ 説明
A2uiCoreCatalog A2uiCoreComponentDefinition オブジェクトのセットが含まれます
A2uiCoreCatalogSerializer A2UI カタログのシリアライザー
A2uiCoreComponentDefinition コンポーネントを定義するメタデータが含まれています
A2uiCoreSurfaceModel A2uiSurfaceModel を実装し、レジストリを公開します
A2uiCoreSurfaceGroupModel A2uiSurfaceGroupModel を実装する
A2uiCoreMessageProcessor A2uiMessageProcessor を実装する
A2uiCoreDataModel リアクティブ データモデル ホルダー
A2uiCoreComponentRegistry コンポーネント レジストリ
A2uiCoreValueResolver 動的エバリュエータで使用するデータ アクセサー
A2uiCoreSchemaValidator コンポーネント スキーマ バリデータ