Разработка Apple Watch приложения (watchOS)

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.

Разработка и поддержка любых видов мобильных приложений:

Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Услуги, которые мы предлагаем
Показано 1 из 1Все 1735 услуг
Разработка Apple Watch приложения (watchOS)
Сложный
~1-2 недели
Часто задаваемые вопросы

Наши компетенции:

Этапы разработки

Последние работы

  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    792
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    495

Разработка Apple Watch приложения (watchOS)

watchOS-приложение — это отдельный таргет со своим жизненным циклом, ограниченными ресурсами и специфичными паттернами взаимодействия. Часы — самостоятельное устройство с watchOS 7+, приложение работает без iPhone рядом. Но архитектура данных и синхронизации между iPhone и Watch — главная сложность, с которой сталкиваются при разработке.

Стек технологий

SwiftUI — единственный рекомендуемый UI-фреймворк для watchOS 7+. WatchKit Views (WKInterfaceController) официально устарели, хотя всё ещё работают. Новые приложения — только SwiftUI.

@main на App struct, WindowGroup — стандартная точка входа как на iOS. Но NavigationSplitView на часах не работает — только NavigationStack.

HealthKit, CoreMotion, CoreLocation, CoreML — доступны на Watch нативно. URLSession — есть, но на часах в фоне не работает: сетевые запросы только пока приложение активно или через WKExtendedRuntimeSession.

WatchConnectivity: синхронизация с iPhone

WCSession — канал связи между приложениями на iPhone и Watch. Не между устройствами в целом, а именно между приложениями.

Три механизма передачи данных:

sendMessage — мгновенная передача, только когда оба приложения активны:

WCSession.default.sendMessage(["action": "fetchData"], replyHandler: { reply in
    // Ответ от iPhone
}, errorHandler: { error in
    // Обработка ошибки (Watch недоступен)
})

updateApplicationContext — словарь, доставляется при следующем запуске, перезаписывается новым значением:

try WCSession.default.updateApplicationContext(["lastSync": Date().timeIntervalSince1970])

Хорошо подходит для текущего состояния (активная тренировка, последние настройки).

transferUserInfo — очередь словарей, доставляются гарантированно по порядку, не перезаписываются. Для лога событий, транзакций.

Частая ошибка: использовать sendMessage для передачи данных когда Watch в фоне. sendMessage требует, чтобы Watch-приложение было активно в foreground. Для фоновой доставки — только updateApplicationContext или transferUserInfo.

Проверка достижимости: WCSession.default.isReachable — но это состояние асинхронное. Приложение может получить true, отправить сообщение, а Watch уйти в сон до получения. Всегда обрабатывайте errorHandler.

Complications: данные на циферблате

Complications — элементы на циферблате часов. С ClockKit (устаревший) → теперь WidgetKit, аналогичный iOS. ComplicationConfiguration через WidgetConfiguration тот же API что и iOS виджеты.

CLKComplication семейства: .circularSmall, .modularSmall, .modularLarge, .utilitarianSmall, .utilitarianLarge, .graphicCorner, .graphicBezel, .graphicCircular, .graphicRectangular, .graphicExtraLarge.

Timeline в Complication работает как iOS WidgetKit: TimelineProvider, заранее заполненные TimelineEntry. Часы знают, что показать на следующие несколько часов — экономия батареи.

CLKComplicationDataSource.getPrivacyBehavior — что показывать на заблокированном циферблате. hideOnLockScreen — скрыть данные, показать пустую комплекцию.

Background Modes на watchOS

WKExtendedRuntimeSession — до 60 минут фоновой работы для специфичных сценариев:

  • workout — тренировка (неограниченное время с активным WorkoutSession)
  • selfCare — медитация, дыхательные упражнения (до 10 минут после экрана)
  • alarm — будильник (требует разрешения пользователя)
  • sleepTracking — отслеживание сна (ночь)

Для трекинга тренировки: HKWorkoutSession + HKLiveWorkoutBuilder — официальный API. Без HKWorkoutSession система агрессивно убивает фоновые процессы.

Сетевые запросы в фоне: URLSession с фоновой конфигурацией на watchOS не поддерживается. Данные из сети в фоне — только через iPhone (WatchConnectivity) или при следующем foreground-запуске.

UX-особенности, которые важно учесть

Экран маленький: Series 4+ — 44mm (368×448pt retina). Минимальный touch target — 44pt. Список строк без сложной иерархии — предпочтительная навигация. Digital Crown — прокрутка контента, zoom в MapKit, ввод значений через Stepper или Picker с кастомным стилем.

onLongPressGesture — работает, но требует 0.8 секунд по умолчанию. На маленьком экране — часто случайные срабатывания.

Haptic feedback через WKInterfaceDevice.current().play(.click) — важный UX-элемент на Watch, где визуальные ответы ограничены.

Тестирование

Watch Simulator — для базового UI. Физические часы обязательны для: GPS, HealthKit, датчиков сердцебиения, Digital Crown tactile feedback, производительности на реальном железе. Series 4 и Series 9 ведут себя по-разному по производительности.

Срок: 1-2 недели для полноценного watchOS-приложения с WatchConnectivity и Complications. Простой companion-app (без собственной логики, только отображение данных с iPhone): 3-5 дней. Стоимость рассчитывается после анализа требований.