Разработка Wear OS приложения (Android-часы)
Wear OS 4 — это уже не «уменьшенная копия Android». Там другой жизненный цикл, другие ограничения по памяти и другой способ думать о UX. Приложение на телефоне, которое «просто показывает данные на часах», без учёта ambient mode, tile API и health services превратится в батарейку-убийцу с рейтингом 2 звезды.
Где обычно ломается Wear OS разработка
Самая частая ошибка — тащить архитектуру мобильного приложения прямо на часы. На телефоне Room + Retrofit + ViewModel работают предсказуемо. На Wear OS с 1 ГБ RAM (а чаще 512 МБ на бюджетных Galaxy Watch) синхронный запрос к сети в onResume блокирует UI thread, потому что разработчик забыл, что Wear OS throttle сетевые запросы агрессивнее, чем Android.
Проблема с DataClient и Wearable Data Layer API. Многие начинают с ChannelClient для передачи данных между телефоном и часами — и получают задержки 3–8 секунд на простую передачу строки. Правильный путь для небольших данных (конфигурация, статус) — DataClient с PutDataMapRequest, для потоковых данных (треки, ЧСС в реальном времени) — ChannelClient. Но главное: синхронизация через Data Layer не гарантирована мгновенно, и архитектура должна это учитывать.
Ambient mode. Если не реализовать AmbientModeSupport, часы переходят в ambient и ваш циферблат или активность пропадает. Но и реализовать неправильно — тоже проблема: в ambient нельзя использовать цветные bitmap, анимации, GPS. Только чёрно-белая отрисовка с обновлением раз в минуту через AmbientCallback.onUpdateAmbient().
Health Services API vs deprecated SensorManager. До Wear OS 3 данные о здоровье брали через SensorManager.registerListener() — это работает, но жрёт батарею и не интегрируется с системной агрегацией. С Wear OS 3+ правильный путь — HealthServicesClient из androidx.health:health-services-client. Он даёт пассивный мониторинг через PassiveMonitoringClient без постоянного wake lock.
Как строим Wear OS приложение
Стек — Jetpack Compose for Wear OS (androidx.wear.compose:compose-material). XML-лейауты на часах технически работают, но Compose Wear дал нам ScalingLazyColumn — список, который автоматически масштабирует элементы под кривизну круглого экрана Galaxy Watch, и SwipeToDismissBox для жестовой навигации.
Навигация — WearNavigator из androidx.wear.compose:compose-navigation. Стандартный NavHost не адаптирован под жесты часов и swipe-to-dismiss.
Для передачи данных используем DataClient + серилизацию через Protobuf (не JSON — слишком тяжёлый для часов). Protobuf схема определяется один раз, используется и на телефоне, и на часах. Это экономит трафик Data Layer и ускоряет парсинг.
Tile API (androidx.wear.tiles) — отдельная история. Tile — это не Activity, это декларативный рендер без Compose. Строится через TileService.onTileRequest(), возвращает Tile объект с Layout и ResourcesRequest. Интерактивность — только через ActionBuilders.LoadAction (перезагрузка тайла) или LaunchAction (открытие Activity). Кнопки в tile не могут вызывать произвольный код.
Тест на реальном железе обязателен. Эмулятор Wear OS в Android Studio не воспроизводит поведение ambient mode, throttling сети и реальное потребление батареи. Тестируем на Galaxy Watch 6 (Wear OS 4, Exynos W930) и Pixel Watch 2 (Wear OS 4, Snapdragon W5 Gen 1).
Процесс работы
Начинаем с аудита существующего мобильного приложения — какие данные нужны на часах, какой сценарий использования (спорт, уведомления, управление умным домом). Это определяет, нужен ли Tile, Complication, Watchface или полноценное приложение.
Проектирование UX под round/square экраны (Galaxy Watch и Pixel Watch — разные соотношения). Разработка с Compose Wear. Интеграция Health Services если нужен биометрический мониторинг. Тестирование на 2–3 устройствах разных поколений.
Публикация через Google Play с отдельным APK для Wear OS (<uses-feature android:name="android.hardware.type.watch"/>). С Wear OS 3 часовое приложение можно устанавливать независимо от телефонного.
Сроки
Простое companion-приложение (уведомления + 1-2 экрана данных): 3–5 недель. Приложение с Tile, Health Services и двусторонней синхронизацией: 6–10 недель. Watchface с Complications: 2–4 недели отдельно. Стоимость рассчитывается после анализа функциональных требований.







