Android向けA2UI: Jetpack ComposeによるAI生成UIの安全な描画
DREAMWALKERDreamus Company
AIエージェントはテキストだけでなく、インタラクティブなユーザーインターフェースも生成し始めています。Androidアプリにおいて、これは実践的な問いを投げかけます。エージェントにどこまでのUI生成を許容し、Androidクライアントはどこで制御を維持すべきでしょうか? A2UIは、エージェント駆動型インターフェースのための宣言型プロトコルです。任意のコードやHTML、WebViewコンテンツを送信する代わりに、エージェントはコンポーネント、データモデル、カタログ、アクションなどの構造化されたUIメッセージを送信します。クライアントは独自のネイティブUIツールキットを使ってそれらを描画します。 本セッションでは、Jetpack Composeベースのレンダラーを構築・分析することで、A2UIがAndroid開発者にとって何を意味するのかを探求します。createSurface、updateComponents、updateDataModel、actionといったA2UIメッセージが、ComposeのState、コンポーネントレジストリ、データバインディング、ユーザー操作のコールバックにどのようにマッピングされるかを見ていきます。 トークでは、Androidにおいて重要となる実践的な設計ポイントを取り上げます。カタログベースの許可リスト、信頼できるコンポーネントのみの描画、Material 3のデザイン一貫性の維持、LLMストリーミング出力の処理、JSON StateからComposeの再構成へのマッピング、そしてユーザーアクションのエージェントへの送信などです。 また、A2UIをWebViewベースのダイナミックUI、従来のServer-Driven UI、Remote Compose、App Functionsと比較し、それぞれの手法がどこに適しているのかを議論します。 目標はAIに「任意のAndroid UIを書かせる」ことではなく、アプリが明示的にサポートするUIサーフェスのみをエージェントに安全に描画させるAndroidアプリを設計することです。 (DroidKaigi実行委員会による翻訳)
対象者
本セッションは、AIエージェント、生成UI、サーバー駆動型UI(Server-Driven UI)、またはJetpack Composeを使用したダイナミックUIレンダリングに関心のあるAndroid開発者を対象としています。 Jetpack Compose、Androidアプリアーキテクチャ、JSONベースAPIに関する基本的な知識があると理解に役立ちますが、A2UIに関する事前知識は必要ありません。 セキュリティ、デザインシステムの一貫性、アクセシビリティ、ネイティブなユーザー体験への制御を維持しながら、AndroidアプリにAIエージェントを統合したい開発者に特に役立ちます。