Используйте Jetpack Compose на Wear OS

Compose для Wear OS аналогичен Compose для мобильных устройств. Однако есть некоторые ключевые различия. Это руководство расскажет вам о сходствах и различиях.

Compose for Wear OS является частью Android Jetpack и, как и другие используемые вами библиотеки Wear Jetpack, помогает быстрее писать более качественный код. Это наш рекомендуемый подход к созданию пользовательских интерфейсов для приложений Wear OS .

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

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

Compose for Wear OS работает на часах, поддерживающих Wear OS 3.0 (уровень API 30), и часах, использующих Wear OS 2.0 (уровень API 25 и выше). Для использования версии 1.0 Compose for Wear OS требуется версия 1.2 библиотек androidx.compose и Kotlin 1.7.0.

Поверхности

Compose for Wear OS упрощает создание приложений для Wear OS. Для получения дополнительной информации см. Приложения . Используйте наши встроенные компоненты для создания пользовательского интерфейса, соответствующего рекомендациям Wear OS. Дополнительную информацию о компонентах см. в нашем руководстве по проектированию .

Настройка

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

Создайте новое приложение в Android Studio.

Чтобы создать новый проект, включающий Jetpack Compose, выполните следующие действия:

  1. Если вы находитесь в окне «Добро пожаловать в Android Studio» , нажмите «Начать новый проект Android Studio» . Если у вас уже открыт проект Android Studio, выберите «Файл» > «Создать» > «Импортировать образец» в строке меню.
  2. Найдите «Создать для Wear» и выберите «Создать для Wear OS Starter».
  3. В окне «Настроить проект» выполните следующие действия:
    1. Установите имя приложения .
    2. Выберите местоположение проекта для вашего образца.
  4. Нажмите «Готово» .
  5. Убедитесь, что файл build.gradle проекта настроен правильно, как описано в разделе Файлы свойств Gradle .

Теперь вы готовы приступить к разработке приложения с использованием Compose for Wear OS.

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

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

Котлин

dependencies {

    val composeBom = platform("androidx.compose:compose-bom:2024.06.00")

    // General compose dependencies
    implementation(composeBom)
    implementation("androidx.activity:activity-compose:1.9.1")
    implementation("androidx.compose.ui:ui-tooling-preview:1.6.8")
    // Other compose dependencies

    // Compose for Wear OS Dependencies
    implementation("androidx.wear.compose:compose-material:1.3.1")

    // Foundation is additive, so you can use the mobile version in your Wear OS app.
    implementation("androidx.wear.compose:compose-foundation:1.3.1")

    // Wear OS preview annotations
    implementation("androidx.wear.compose:compose-ui-tooling:1.3.1")

    // If you are using Compose Navigation, use the Wear OS version (NOT THE MOBILE VERSION).
    // Uncomment the line below and update the version number.
    // implementation("androidx.wear.compose:compose-navigation:1.3.1")

    // Testing
    testImplementation("junit:junit:4.13.2")
    androidTestImplementation("androidx.test.ext:junit:1.1.3")
    androidTestImplementation("androidx.test.espresso:espresso-core:3.4.0")
    androidTestImplementation("androidx.compose.ui:ui-test-junit4:1.0.3")
    debugImplementation("androidx.compose.ui:ui-tooling:1.0.3")
}

Какая разница

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

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

Зависимость от операционной системы Wear

(androidx.wear.*)

Сравнение Мобильная зависимость

(андроидx.*)

androidx.wear.compose:compose-material вместо androidx.compose.material:материал
androidx.wear.compose:compose-navigation вместо androidx.navigation:navigation-compose
androidx.wear.compose:compose-foundation в дополнение к androidx.compose.foundation:основание

Вот пример файла build.gradle :

// Example project in app/build.gradle file
dependencies {
    // Standard Compose dependencies...

    // Wear specific Compose Dependencies
    implementation "androidx.wear.compose:compose-material:$rootProject.wearVersion"
    implementation "androidx.wear.compose:compose-foundation:$rootProject.wearVersion"

    // For navigation within your app...
    implementation "androidx.wear.compose:compose-navigation:$rootProject.wearVersion"

    // Other dependencies...
}

Обратная связь

Попробуйте Compose для Wear OS и используйте систему отслеживания проблем , чтобы предлагать предложения и отзывы.

Присоединяйтесь к каналу #compose-wear на Kotlin Slack, чтобы связаться с сообществом разработчиков и поделиться с нами своим опытом.

{% дословно %} {% дословно %} {% дословно %} {% дословно %}