Android Wear (1)


Адаптируем Android приложение под Wear OS

В марте 2018 Google произвела ребрендинг платформы Android Wear. Новое название — Wear OS. По статистике, на данный момент в мире умных часов лидирует watchOS от Apple, занимая 16,2 %, на долю Wear OS приходится меньше 7%, Однако, рынок умных часов еще новый и определенно следует ждать увеличения пользователей. Это значит, мы можем писать приложения, а также watchface для носимых гаджетов.
Рассмотрим пример создания модуля Wear OS для существующего приложения. У меня как раз есть подходящее — все тот же секундомер бодибилдера.

Создание модуля

Итак, создаем новый модуль в нашем проекте и выбираем wearable app

В build.gradle созданного модуля добавляем зависимости:

dependencies {
    implementation 'com.android.support:wear:27.1.1'
    implementation 'com.google.android.support:wearable:2.3.0'
    compileOnly 'com.google.android.wearable:wearable:2.3.0'
}

Wearable app может быть в трех состояниях:

  • Полностью независимо от мобильного преложения
  • Полу-независимо (телефон не требуется, но может предоставлять дополнительные функции)
  • Зависимым от мобильного приложения

Для первых двух, то есть для независимых, в Android Manifest для тега application надо прописать:

 <meta-data
 android:name="com.google.android.wearable.standalone"
 android:value="true" />

иначе приложение будет недоступно для пользователей с iPhone.
То есть, если этот флаг false, то приложение можно будет установить только на устройстве, связнным с телефоном, на котором установлен Play Store.

Помимо этого, для wear-модуля необходимо добавить В AndroidManifest.xml <uses-feature> со значением:

<manifest>
...
 <uses-feature android:name="android.hardware.type.watch" />
...
</manifest>


Packaging

Ранее, apk под Wear 1.0 были встраиваемыми в APKs для телефонов. Wear OS позволяет нам загружать apk скомпилированные под Wear 1.0 сразу в Play Store. Это позволяет уменьшить размер apk основного приложения и дает дополнительную гибкость в версионировании и дистрибуции нашего приложения. Подробнее здесь

Приложение должно быть самостоятельным apk, но это не значит, что мы не можем использовать код нашего приложения повторно. Просто выносим общую логику в библиотечный модуль, и импортируем его в модули app и wear. Таким образом, в модулях app и wear остается в основном только UI-часть приложения.

 

UI

Для создания красивых отзывчивых приложений в wear os есть свои UI-элементы . Например, BoxInsetLayout — layout, автоматически адпатирующийся под круглые и прямоугольные экраны.

BoxInsetLayout      BoxInsetLayout

Для создания списков в wear устройствах имеется аналог RecyclerView — WearableRecyclerView

WearableRecyclerView

 

 

Итог

Помните, что из-за аппаратных ограничений часы не предназначены для больших по функциональности приложений. Они идеально подходят для уведомлений, быстрых сообщений, или простых приложений. Имейте это ввиду, и публикуйте новые приложения или адаптированные под Wear OS версии существующих в Google Play!

Вот и все на сегодня!