WatchKit

компонент WatchOS
WatchKit
Изображение логотипа
Разработка в Xcode для WatchKit на Macbook
Разработка в Xcode для WatchKit на Macbook
Тип компонента фреймворк
Включён в WatchOS 1.0 и более поздние
Состояние активно развивается
Сайт developer.apple.com/docu…

WatchKitфреймворк Apple Inc. для разработки приложений под смарт-часы Apple Watch (операционная система watchOS). Он был анонсирован вместе с бета‑версией iOS 8.2 в ноябре 2014 года. По замыслу Apple, WatchKit предоставляет разработчикам набор инструментов для создания специальных пользовательских интерфейсов, уведомлений и «Glances» (быстрых информационных экранов) на Apple Watch. Первая версия watchOS (1.0) вышла в апреле 2015 года вместе с устройством Apple Watch, и с её релизом разработчики получили возможность строить WatchKit-приложения как расширения своих iOS-приложений[1].

История

В ноябре 2014 Apple выпустила Xcode 6.2 с поддержкой iOS 8.2 beta и SDK WatchKit, объявив о готовности фреймворка для разработчиков[2]. В официальном пресс-релизе Apple говорилось, что WatchKit позволяет создавать приложения, интерактивные уведомления и Glances специально для Apple Watch.

В апреле 2015 года состоялся релиз watchOS 1.0 вместе с Apple Watch (первая модель). В этой версии все WatchKit-приложения представляли собой гибридные приложения: на часах хранятся лишь данные интерфейса (storyboard, изображения), а весь код выполняется в расширении на iPhone[2]. Это означало, что без iPhone (или специальных модификаций системы) запуск стороннего ПО на Watch был невозможен[2].

В сентябре 2015 года на WWDC анонсирована watchOS 2, которая вышла в релиз в сентябре 2015 года. WatchOS 2 впервые разрешила запускать приложения нативно на самом устройстве, без постоянной зависимости от iPhone. В ней появились новые API (например, фреймворк ClockKit для создания Complications – информеров на циферблате) и доступ к аппаратным сенсорам (сердечный датчик, акселерометр и др.), а также к системным фреймворкам HealthKit и HomeKit[3].

watchOS 3 (2016) и watchOS 4–5 (2017–2018) были в основном направлены на повышение производительности и добавление возможностей (например, замена Glances на новый Центр управления в watchOS 3). Значительным шагом стало watchOS 6 (2019): в ней появился встроенный App Store на часах и возможность выпускать полностью автономные приложения для Apple Watch (то есть без обязательной привязки к iPhone). Кроме того, WWDC 2019 представил поддержку SwiftUI для интерфейсов watchOS, что значительно упростило разработку пользовательского интерфейса «по‑новому». В последующих версиях (watchOS 7–10) Apple постепенно удаляла устаревшие механизмы (например, убрала технологию Force Touch в watchOS 7) и продолжала расширять возможности работы с данными и сенсорами (отслеживание сна, новые датчики и т.д.)[3][4].

Архитектура

Архитектура WatchKit-приложений изначально предусматривает разделение на две основные части: WatchKit App и WatchKit Extension. WatchKit App содержит ресурсы интерфейса (storyboard, картинки, Asset Catalog) и устанавливается на Apple Watch. WatchKit Extension содержит весь исполняемый код приложения и изначально (в watchOS 1) выполнялся на сопряжённом iPhone, взаимодействуя с часами по беспроводной связи. Как отмечалось в документации и руководствах, Apple Watch в этом случае фактически является «тонким клиентом»: при запуске приложения на часах интерфейс отображается на Watch, а вычисления и обработка событий происходят на iPhone[2][5].

Начиная с watchOS 2 архитектура изменилась: WatchKit Extension стал размещаться непосредственно на самом устройстве Apple Watch, а приложения могут выполняться нативно, без постоянной связи с iPhone. Это существенно снизило необходимость постоянного обмена данными с телефоном. Как указывала The Verge «изначальный набор инструментов требовал подключенного iPhone… Apple обещала нативные приложения для осени, и новая ОС обеспечивает их работу». Для синхронизации данных между приложением на часах и iOS-приложением традиционно используется фреймворк WatchConnectivity (появившийся в iOS 9 и watchOS 2+), который передаёт сообщения, файлы и состояние приложений по паре «телефон–часы»[6][2].

API и компоненты

WatchKit предоставляет разработчику готовые контроллеры интерфейса и элементы UI, оптимизированные для маленького экрана Apple Watch. Среди стандартных компонентов — WKInterfaceLabel (текстовая метка), WKInterfaceButton (кнопка), WKInterfaceImage (изображение), WKInterfaceTable (таблица для списков) и другие (например, Switch, Date Picker, Map, Menu)[2]. Интерфейсы создаются с помощью storyboard-файлов WatchKit App. Навигация между экранами реализуется через сегвеи: Push (иерархическая навигация) и Modal (модальные экраны), а также постраничный режим (Page-based, при котором контроллеры перелистываются по горизонтали). Кроме визуальных компонентов, WatchKit определяет жизненный цикл приложения на часах. Ключевыми объектами здесь являются WKInterfaceController (аналог UIViewController) и WKExtensionDelegate, который управляет фоновыми задачами и ответом на системные события. Для управления данными в WatchKit-приложениях обычно используются механизмы обмена с iPhone (WatchConnectivity) или общие ресурсы (например, UserDefaults с общим App Group). Начиная с watchOS 5–6 добавлены API для фоновых задач и длительных сеансов (Extended Runtime) – это позволяет приложению продолжать выполнение даже при затемнённом экране (например, во время фоновой аудио-воспроизводств или тренировок)[6].

Взаимодействие с другими фреймворками

WatchKit-приложения могут использовать многие системные фреймворки Apple. С выходом watchOS 2 приложения на Apple Watch получили доступ к аппаратным сенсорам — микрофону, динамику, акселерометру, гироcкопу и т.д. — а также к фреймворкам HomeKit и HealthKit. Например, HealthKit позволяет считывать с часов данные о пульсе и других метриках здоровья в реальном времени. В watchOS 3.2 Apple добавила поддержку SiriKit, что дало возможность обрабатывать голосовые команды через Siri (пользователь может, например, голосом запустить тренировку или отправить сообщение от лица watchOS-приложения). Кроме того, для watchOS доступны и другие стандартные фреймворки iOS (CoreBluetooth, CoreMotion, CoreML и др.), что позволяет расширять функциональность приложений вплоть до использования машинного обучения на устройстве[6].

Поддержка версий WatchOS и SwiftUI

WatchKit эволюционировал вместе с выходом новых версий watchOS. В watchOS 1 (2015) приложения строго работали как расширения iPhone. В watchOS 2 (2015) было введено нативное исполнение на устройстве (снижающее нагрузку и задержки). В watchOS 3–5 (2016–2018) фреймворк стабилизировался и получил дополнительные мелкие улучшения интерфейса. Начиная с watchOS 6 (2019) появилась возможность создавать полностью автономные приложения для Apple Watch – они могут устанавливаться и обновляться через App Store на часах и не требуют обязательной пары с iPhone. Одновременно с этим Apple внедрила в экосистему SwiftUI – новый декларативный фреймворк для построения интерфейсов, который работает и в приложениях для watchOS. SwiftUI существенно упростил верстку экранов на Watch, позволив создавать сложные интерфейсы с помощью декларативного кода[2].

Независимые приложения

До выхода watchOS 6 все сторонние приложения Apple Watch распространялись как дополнения к iOS-приложениям: они не имели собственного магазина и устанавливались через приложение Apple Watch на iPhone. С введением watchOS 6 (2019) ситуация изменилась: на часах появился полноценный App Store, и разработчики получили возможность выкладывать отдельные watchOS-приложения (так называемые standalone или независимые приложения), работающие без привязки к iPhone. Это существенно расширило возможности разработчиков – теперь можно создавать приложения, целиком рассчитанные на экран часов (например, мини‑игры, утилиты, фитнес-программы) и распространять их непосредственно в каталоге на самом устройстве Apple Watch[6].

Совместимость и инструменты

Для разработки WatchKit-приложений используется Xcode — начиная с версии 6.2 (с выходом iOS 8.2) появился SDK WatchKit[2].

Приложения для Apple Watch можно писать как на языке Swift, так и на Objective-C; Apple официально поддерживает оба подхода (документация, образцы кода и проекты-примеры доступны в обоих языках). В новых версиях инструментария всё больше развивается SwiftUI – рекомендуемый способ построения интерфейса, хотя традиционные сториборды WatchKit по-прежнему поддерживаются. С точки зрения версий ОС, минимальная поддержка зависит от целевой версии watchOS: например, для Xcode 11+ и SwiftUI требуется watchOS 6+, тогда как базовая поддержка WatchKit есть уже с watchOS 1. В качестве вспомогательных инструментов можно использовать стандартные возможности Xcode: симуляторы Apple Watch, Swift Package Manager для управления зависимостями, встроенные инструменты профилирования и отладки[7].

Примечания

  1. WatchKit (амер. англ.). Apple Developer Documentation. Дата обращения: 13 июня 2025.
  2. 1 2 3 4 5 6 7 8 Изучаем WatchKit — создаем первое приложение для Apple Watch. Хабр (20 ноября 2014). Дата обращения: 13 июня 2025.
  3. 1 2 watchOS (англ.) // Wikipedia. — 2025-06-11.
  4. Apple. Возможности WatchKit для разработчиков сегодня (англ.). apple.com.
  5. Designing for watchOS (амер. англ.). Apple Developer Documentation. Дата обращения: 13 июня 2025.
  6. 1 2 3 4 Watch Connectivity (амер. англ.). Apple Developer Documentation. Дата обращения: 13 июня 2025.
  7. Design and Development Videos - Apple Developer. developer.apple.com. Дата обращения: 13 июня 2025.