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

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

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

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

Если вы не знакомы с использованием набора инструментов Jetpack Compose, ознакомьтесь с маршрутом Compose . Многие принципы разработки мобильного Compose применимы и к телевидению. См . раздел «Почему Compose» для получения дополнительной информации об общих преимуществах декларативной инфраструктуры пользовательского интерфейса. Дополнительные сведения см. также в репозитории примеров Compose for TV на GitHub .

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

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

Настраивать

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

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

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

Котлин

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

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

   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:2024.09.03')
   implementation composeBom

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

   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 , существует вероятность того, что цвета, типографика или формы будут несовместимы, если используются обе версии.

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

ТВ-зависимость
(androidx.tv.*)
Сравнение Мобильная зависимость
(androidx.compose.*)
androidx.tv:tv-материал вместо androidx.compose.material3:material3

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

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

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

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

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

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

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