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

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

Некоторые конкретные преимущества использования 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) и выше. Для использования Compose for TV версии 1.0 требуются библиотеки 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-material вместо androidx.compose.material3:material3

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

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

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

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

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

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

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