Розробка додатку для 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 днів. Вартість розраховується після аналізу вимог.