Compose for TV は、Android TV ユーザー インターフェースを構築するための最新のアプローチです。Compose for TV を使用すると、Android の Jetpack Compose のすべてのメリットを TV アプリで活用できるため、アプリの美しく機能性の高い UI の作成が 容易になります。
Compose for TV を使用すると、次のようなメリットがあります。
- 柔軟性: Compose を使用すると、シンプルな レイアウトから複雑なアニメーションまで、あらゆる種類の UI を作成できます。コンポーネントはすぐに使用できますが、アプリのニーズに合わせたカスタマイズやスタイル設定も可能です。
- 開発の簡素化と迅速化: Compose は 既存のコードと互換性があるため、デベロッパーは 少ないコードでアプリを効率的に構築できます。
- 直感的: Compose では、UI の変更とコードのデバッグ、理解、レビューを直感的に行える宣言型構文が使用されています。
Jetpack Compose ツールキットの使用に慣れていない場合は、 Compose のパスウェイをご覧ください。モバイル向け Compose の開発原則の多くは、TV にも当てはまります。宣言型 UI フレームワークの一般的なメリットについて詳しくは、Compose を導入する理由をご覧ください。詳細については、GitHub の Compose for TV サンプル リポジトリもご覧ください。
AI プロンプト
Android TV のサポートを追加する方法を学ぶ
このプロンプトは、Leanback ではなく Jetpack Compose for TV を使用して、アプリに Android TV のサポートを追加する方法についてガイダンスを求めています。
How do I add support for Android TV to my application?
Use Jetpack Compose for TV as part of the response instead of Leanback.
互換性
Compose for TV は、Android 5.0(API レベル 21)以降を搭載した Android TV で動作します。 Compose for TV のバージョン 1.0 を使用するには、 androidx.compose ライブラリのバージョン 1.3.0 と Kotlin 1.7.10 が必要です。
設定
Android TV で Jetpack Compose を使用することは、他の Android プロジェクトで Jetpack Compose を使用することと似ています。主な違いは、Compose for TV
では TV 向けに最適化されたコンポーネントを提供するライブラリが追加され、TV 向けにカスタマイズしたユーザー インターフェースを簡単に作成できる点です。場合によっては、これらのコンポーネントが TV 以外のコンポーネントと同じ
名前を共有することもあります(
androidx.tv.material3.Button
や
androidx.compose.material3.Buttonなど)。
Jetpack Compose ツールキットの依存関係
Compose for TV を使用するには、次の例のように、Jetpack Compose ツールキット
の依存関係をアプリの build.gradle ファイルに追加します。
Kotlin
dependencies { val composeBom = platform("androidx.compose:compose-bom:2026.02.01") implementation(composeBom) // General compose dependencies. implementation("androidx.activity:activity-compose:1.12.4") implementation("androidx.compose.ui:ui-tooling-preview") debugImplementation("androidx.compose.ui:ui-tooling") // Compose for TV dependencies. implementation("androidx.tv:tv-material:1.0.0") }
Groovy
dependencies { def composeBom = platform('androidx.compose:compose-bom:2026.02.01') implementation composeBom // General compose dependencies. implementation 'androidx.activity:activity-compose:1.12.4' implementation 'androidx.compose.ui:ui-tooling-preview' debugImplementation 'androidx.compose.ui:ui-tooling' // Compose for TV dependencies. implementation 'androidx.tv:tv-material:1.0.0' }
変更点
TV マテリアル コンポーネントはリビングルーム向けに設計されており、フォーカス インジケーターが明確 で、リモコンで操作しやすい入力動作 を実現しています。これらの特定のコンポーネントの使用方法について詳しくは、TV UI デザイン ガイドをご覧ください。
これらの機能を活用するには、可能な限り TV バージョン の API を使用してください。
モバイル版の Compose Material を使用することも技術的には可能ですが、
Android TV 固有の操作スタイルに合わせて最適化されているわけではありません。また、Compose Material と
Compose for TV の Compose Material を混在させると、予期しない動作が発生する可能性があります。たとえば、
各ライブラリに独自の MaterialTheme オブジェクトがあるため、両方のバージョンを使用した場合、色、タイポグラフィ、図形に一貫性がなくなる可能性があります。
次の表に、TV と モバイルの依存関係の違いを示します。
| TV の依存関係 (androidx.tv.*) |
比較 | モバイルの依存関係 (androidx.compose.*) |
|---|---|---|
| androidx.tv:tv-material | 変更 | androidx.compose.material3:material3 |
参考情報
TV デザイン ガイド
ユーザー インターフェースを構築するための専用の TV コンポーネントの概要と、 関連するデベロッパー リソースへのリンク。TV マテリアル カタログのサンプル
Compose for TV を使用して マテリアル デザインの原則を実装する方法を示すカタログアプリ。JetStream のサンプル
一般的なマテリアル アプリと実際のアーキテクチャで TV Compose を使用する方法を示すメディア ストリーミング アプリ。Compose for TV の概要
この Codelab では、カタログ ブラウザ 画面と詳細画面を備えた動画プレーヤー アプリの作成について説明します。
参考資料
以下のガイドで、TV 向けに最適化された優れたエクスペリエンスを構築する方法をご確認ください。