Используйте Jetpack Compose на Android TV

Compose for TV — это современный подход к созданию пользовательских интерфейсов Android TV. Compose for TV раскрывает все преимущества Android Jetpack Compose для ваших приложений TV, значительно упрощая создание красивых и функциональных пользовательских интерфейсов для вашего приложения.

Некоторые конкретные преимущества использования Compose for TV включают в себя следующее:

  • Гибкость : Compose можно использовать для создания любого типа пользовательского интерфейса, от простых макетов до сложных анимаций. Компоненты работают из коробки, но их также можно настраивать и оформлять в соответствии с потребностями вашего приложения.
  • Упрощенная и ускоренная разработка : Compose совместим с существующим кодом и позволяет разработчикам эффективнее создавать приложения с меньшим объемом кода.
  • Интуитивно понятный : Compose использует декларативный синтаксис, который позволяет вносить изменения в пользовательский интерфейс, отлаживать, понимать и просматривать код.

Если вы не знакомы с использованием набора инструментов Jetpack Compose, ознакомьтесь с Compose path . Многие принципы разработки для мобильного Compose применимы и к ТВ. Подробнее об общих преимуществах декларативного UI-фреймворка см. в разделе Почему Compose . Чтобы узнать больше, см. также репозиторий примеров Compose для ТВ на GitHub .

Узнайте, как добавить поддержку Android TV

В этом запросе запрашиваются рекомендации по добавлению поддержки Android TV в ваше приложение с использованием Jetpack Compose for TV вместо Leanback.

How do I add support for Android TV to my application?

Use Jetpack Compose for TV as part of the response instead of Leanback.

Использование подсказок ИИ

Подсказки ИИ предназначены для использования в Gemini в Android Studio (требуется последняя версия Canary)

Узнайте больше о Gemini в Studio здесь: https://developer.android.com/studio/preview/gemini

Совместимость

Compose for TV работает на Android TV с Android 5.0 (уровень API 21) или выше. Для использования версии 1.0 Compose for TV требуются библиотеки androidx.compose версии 1.3.0 и Kotlin 1.7.10.

Настраивать

Использование Jetpack Compose на Android TV похоже на использование Jetpack Compose для любого другого проекта Android. Главное отличие в том, что Compose для TV добавляет библиотеки, которые предлагают компоненты, оптимизированные для ТВ, и упрощают создание пользовательских интерфейсов, адаптированных для ТВ. В некоторых случаях эти компоненты имеют то же имя, что и их аналоги, не относящиеся к ТВ, например androidx.tv.material3.Button и androidx.compose.material3.Button .

Зависимости набора инструментов Jetpack Compose

Чтобы использовать Compose для ТВ, включите зависимости набора инструментов Jetpack Compose в файл build.gradle вашего приложения следующим образом:

Котлин

dependencies {
   val composeBom = platform("androidx.compose:compose-bom:2025.05.00")
   implementation(composeBom)

   // General compose dependencies.
   implementation("androidx.activity:activity-compose:1.10.1")

   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")
}

Круто

dependencies {
   def composeBom = platform('androidx.compose:compose-bom:2025.05.00')
   implementation composeBom

   // General compose dependencies.
   implementation 'androidx.activity:activity-compose:1.10.1'

   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'
}

Что изменилось?

Компоненты телевизионного материала предназначены для гостиной, с четкими индикаторами фокусировки и удобным для дистанционного управления поведением ввода . Подробную информацию об использовании этих конкретных компонентов см. в руководствах по проектированию пользовательского интерфейса телевизора .

Рисунок 1. Примеры компонентов из библиотеки телевизионных материалов.

По возможности используйте телевизионную версию API, чтобы воспользоваться этими функциями.

Хотя технически возможно использовать мобильную версию Compose Material, она не оптимизирована для уникального стиля взаимодействия на Android TV. Кроме того, смешивание Compose Material с Compose Material из Compose for TV может привести к неожиданному поведению. Например, поскольку каждая библиотека имеет свой собственный объект MaterialTheme , существует вероятность несоответствия цветов, типографики или форм при использовании обеих версий.

В следующей таблице показаны различия в зависимости между телевидением и мобильными устройствами:

Зависимость от ТВ
(androidx.tv.*)
Сравнение Зависимость от мобильных устройств
(androidx.compose.*)
androidx.tv:tv-материал вместо androidx.compose.материал3:материал3

Дополнительные ресурсы

  • Руководства по дизайну телевизоров
    Обзор специализированных телевизионных компонентов для создания пользовательских интерфейсов со ссылками на соответствующие ресурсы для разработчиков.

  • Образец каталога телевизионных материалов
    Приложение-каталог, демонстрирующее, как реализовать принципы Material Design с помощью Compose for TV.

  • Образец JetStream
    Приложение для потоковой передачи мультимедиа, демонстрирующее использование TV Compose с типичным приложением Material и реальной архитектурой.

  • Введение в Compose для ТВ
    В этой лабораторной работе пошагово рассматривается создание приложения видеоплеера с экраном каталога-браузера и экраном сведений.

Дальнейшее чтение

Изучите эти руководства, чтобы узнать, как создать отличный контент, оптимизированный для ТВ, для: