Используйте 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 5.0 (уровень API 21) или выше. Для использования Compose for TV версии 1.0 требуется версия 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.06.00")
   implementation(composeBom)

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

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

классный

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

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

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

Что отличается

По возможности используйте телевизионную версию 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 для ТВ
    В этой лаборатории кода поэтапно создается приложение видеоплеера с экраном браузера каталога и экраном подробностей.

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

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