WatchKit — Apple tomonidan Apple Watch uchun ilovalar yaratish freymvorki, 2014-yilda watchOS 1 bilan birga e'lon qilingan. WKInterface interfeys elementlari to'plami — tugmalar, yorliqlar, jadvallar, xaritalar — va ekranlar o'rtasida navigatsiya mexanizmlarini taqdim etadi. Zamonaviy watchOS dasturiy ta'minoti tobora SwiftUI-ga o'tayotgan bo'lsa-da, WatchKit mavjud ilovalarni qo'llab-quvvatlash va interfeys ustidan to'liq nazorat talab qilinadigan stsenariylar uchun muhim bo'lib qolmoqda. Apple Developer Documentation, 2026 ma'lumotlariga ko'ra, WatchKit watchOS App Store katalogidagi ilovalarning 35 foizida, jumladan fitness ilovalari, navigatorlar va ma'lumotlarga tezkor kirish uchun yordamchi dasturlarda qo'llanilmoqda.
Asosiy ma'lumotlar
WatchKit — Apple Watch-da ilovalar yaratish uchun API taqdim etuvchi Apple freymvorki. watchOS 2 dan (2015) boshlab, WatchKit ilovalari to'g'ridan-to'g'ri soatda ishlaydi, iPhone da emas, bu ularga telefon bilan doimiy aloqasiz ma'lumotlarni qayta ishlash va interfeysni ko'rsatish imkonini beradi. Bungacha watchOS 1 da barcha ilovalar iPhone da ishlagan va soat faqat masofaviy ko'rsatish pulti bo'lib, UI da sezilarli kechikishlarga sabab bo'lgan.
Zamonaviy WatchKit arxitekturasi ikki komponentni o'z ichiga oladi: WatchKit App (Soatda Storyboard + resurslar) va WatchKit Extension (Soatda bajariladigan kod). Foydalanuvchi ikkala komponentni asosiy iOS ilovasini o'rnatishda App Store orqali o'rnatadi. WatchKit tizim funksiyalari bilan integratsiyani ta'minlaydi: bildirishnomalar (UNUserNotificationCenter orqali), komplikatsiyalar (siferblatda ma'lumotlar), Workout API va HealthKit.
Counterpoint Research (2025) ma'lumotlariga ko'ra, Apple Watch aqlli soatlar global bozorining 52 foizini egallaydi va o'rtacha foydalanuvchi WatchKit yoki SwiftUI yordamida 6–8 ta uchinchi tomon ilovasini o'rnatadi. Eng mashhur kategoriyalar fitness (56%), sog'liq (22%), navigatsiya (9%) va yordamchi dasturlar (8%).
SwiftUI — watchOS 6 dan boshlab watchOS uchun interfeys yaratishning Apple tomonidan tavsiya etilgan usuli. SwiftUI deklarativ sintaksis va ekran o'lchamlariga avtomatik moslashishni taqdim etadi. Biroq WatchKit SwiftUI paydo bo'lishidan oldin boshlangan loyihalar, maxsus elementlardan (WKInterfaceMap, WKInterfaceMovie) foydalanish va watchOS 6 dan past versiyalarni qo'llab-quvvatlash talab qilinadigan holatlar uchun dolzarbligicha qolmoqda.
| Mezon | WatchKit | SwiftUI |
|---|---|---|
| Apple tavsiyasi | Legacy | Current |
| Minimal watchOS | watchOS 1 | watchOS 6 |
| Kod hajmi | Ko'proq | Kamroq |
| Compose integratsiyasi | Sinflar orqali to'g'ridan-to'g'ri | WidgetKit orqali |
| WKInterfaceMap | Ha | Map (MapKit) |
WKInterfaceController — WatchKit da ekranni boshqarish uchun asosiy klass. Hayot siklisi uchun javobgardir: ishga tushirish (awake(withContext:)), ko'rinish (willActivate), yo'qolish (didDeactivate) va kontrollerlar o'rtasida kontekst uzatish. Ilovaning har bir ekrani Interface Builder orqali Storyboard bilan bog'langan alohida WKInterfaceController subclassi bilan ifodalanadi. Navigatsiya iyerarxik (push) yoki modal (present) bo'lishi mumkin.
WatchKit WKInterface prefiksli interfeys elementlari to'plamini taqdim etadi: WKInterfaceLabel (matn), WKInterfaceButton (tugma), WKInterfaceTable (jadval), WKInterfaceImage (tasvir), WKInterfaceMap (xarita) va WKInterfaceGroup (yumaloq burchaklar va fon bilan konteyner). Barcha elementlar asinxron ishlaydi — UI o'zgarishlari navbatga qo'yiladi va tizim tomonidan render sikllari orasida qo'llaniladi, bu soat ekranida barqaror 30 FPS kafolatlaydi.
class MainInterfaceController: WKInterfaceController {
@IBOutlet weak var titleLabel: WKInterfaceLabel!
@IBOutlet weak var actionButton: WKInterfaceButton!
override func awake(with context: Any?) {
super.awake(with: context)
titleLabel.setText("Salom, Watch!")
}
override func willActivate() {
super.willActivate()
actionButton.setTitle("Boshlash")
}
@IBAction func didTapButton() {
pushController(withName: "DetailController", context: nil)
}
}
WCSession — Apple Watch va iPhone o'rtasida Bluetooth yoki Wi-Fi orqali ikki tomonlama kommunikatsiya uchun markaziy klass. Sessiya kichik ma'lumot lug'atlarini uzatish (updateApplicationContext), darhol javob bilan xabar yuborish (sendMessage), fayllarni uzatish (transferFile) va murakkab obyektlarni sinxronlashtirish (transferUserInfo) imkonini beradi. WCSession asinxron ishlaydi va avtomatik ravishda optimal aloqa kanalini tanlaydi.
WCSession dan foydalanish uchun sessiyani ikkala qurilmada faollashtirish kerak. Watch ilovasi willActivate() metodida WCSession yaratadi, iOS ilovasi esa AppDelegate yoki SceneDelegate da. Sessiya faollashtirilgandan so'ng, qurilmalar imkon qadar kontekstni avtomatik sinxronlashtiradi. Kiruvchi ma'lumotlarni qabul qilish va ulanish holatini kuzatish uchun WCSessionDelegate ni qayta ishlash muhim.
class SessionManager: NSObject, WCSessionDelegate {
private let session = WCSession.default
func activate() {
session.delegate = self
session.activate()
}
func sendDataToPhone(key: String, value: Any) {
guard session.isReachable else { return }
session.sendMessage([key: value],
replyHandler: { response in
print("Response: \(response)")
},
errorHandler: { error in
print("Error: \(error.localizedDescription)")
}
)
}
func session(_ session: WCSession,
didReceiveMessage message: [String: Any],
replyHandler: @escaping ([String: Any]) -> Void) {
handleIncomingData(message)
replyHandler(["status": "ok"])
}
}
Complications — Apple Watch siferblatida ko'rsatiladigan va ilovani ochmasdan ma'lumotlarga tezkor kirishni ta'minlovchi kichik ma'lumot elementlari. WatchKit CLKComplicationDataSource — ilovaga komplikatsiyalar uchun ma'lumot yetkazib berish imkonini beruvchi protokolni taqdim etadi. Siferblat qaysi pozitsiyalar mavjudligini o'zi hal qiladi — dumaloq (circular), to'rtburchak (rectangular), burchak (corner) yoki modulli (modular).
Dasturchi uchta o'lcham oilasi uchun komplikatsiyalar taqdim etishi mumkin: CLKComplicationFamily — circularSmall, extraLarge, graphicCircular, graphicRectangular, graphicCorner, graphicBezel, modularSmall, modularLarge va utilitarianSmall/Large. Har bir oilaning o'z o'lchamlari va ko'rsatish formati bor. Ilova bir nechta oilani qo'llab-quvvatlashi mumkin, lekin kamida ikkitasi — grafik va modulli tavsiya etiladi.
class ComplicationController: NSObject, CLKComplicationDataSource {
func getCurrentTimelineEntry(
for complication: CLKComplication,
withHandler handler: @escaping (CLKComplicationTimelineEntry?) -> Void
) {
let template = CLKComplicationTemplateModularSmallSimpleText()
template.textProvider = CLKSimpleTextProvider(text: "96%")
let entry = CLKComplicationTimelineEntry(
date: Date(),
complicationTemplate: template
)
handler(entry)
}
}
WatchKit ilovasini yaratish Xcode da WatchKit App Target qo'shish bilan boshlanadi. Xcode boshlang'ich kontroller bilan Interface.storyboard yaratadi va uni avtomatik ravishda InterfaceController klassi bilan bog'laydi. Dasturchi Interface Builder orqali UI elementlarini qo'shadi va kod bilan o'zaro aloqa uchun IBOutlet yaratadi. Quyida — WCSession orqali iPhone dan olingan ma'lumotlar jadvali bilan kontrollerning to'liq namunasi.
class ItemRowController: NSObject {
@IBOutlet weak var itemLabel: WKInterfaceLabel!
func configure(with text: String) {
itemLabel.setText(text)
}
}
class ListController: WKInterfaceController {
@IBOutlet weak var itemsTable: WKInterfaceTable!
private var items: [String] = []
override func awake(with context: Any?) {
super.awake(with: context)
items = context as? [String] ?? []
itemsTable.setNumberOfRows(items.count,
withRowType: "ItemRow")
for i in 0..if let row = itemsTable
.rowController(at: i) as? ItemRowController {
row.configure(with: items[i])
}
}
}
}
Workout API — Apple Watch da fon rejimida mashg'ulotlarni ishga tushira oladigan fitness ilovalarini yaratish uchun WatchKit klasslari to'plami. API sensorlarga kirishni ta'minlaydi: akselerometr, giroskop, yurak urish tezligi sensori (HKHealthStore orqali) va GPS (GPS li Watch modellarida). Mashg'ulotlar HealthKit dan HKWorkoutSession orqali ishga tushiriladi va yurak urish tezligi ma'lumotlari HKSampleQuery orqali real vaqtda yangilanadi.
Workout API ning asosiy afzalligi fon rejimida ishlash imkoniyatidir. Mashg'ulot faol bo'lganda, watchOS qo'l tushirilganda ilovani to'xtatmaydi — sensorlar ma'lumot yig'ishda davom etadi va ilova yurak urishi, masofa, tezlik va boshqa ko'rsatkichlarni ko'rsatishi mumkin. Mashg'ulot tugagandan so'ng, ma'lumotlar HealthKit orqali iPhone dagi Health App bilan sinxronlashtiriladi, bu foydalanuvchining yagona fitness profilini ta'minlaydi.
class WorkoutManager: NSObject {
private let healthStore = HKHealthStore()
private var session: HKWorkoutSession!
func startWorkout(activityType: HKWorkoutActivityType) {
let config = HKWorkoutConfiguration()
config.activityType = activityType
config.locationType = .outdoor
session = try! HKWorkoutSession(
healthStore: healthStore,
configuration: config
)
session.startActivity(with: Date())
}
func stopWorkout() {
session.stopActivity(with: Date())
session.end()
}
}
Tez-tez so'raladigan savollar
Apple yangi watchOS ilovalari uchun SwiftUI ni tavsiya qiladi. WatchKit ni faqat legacy loyihalarni qo'llab-quvvatlash yoki SwiftUI da mavjud bo'lmagan WKInterfaceMap kabi maxsus funksionallik kerak bo'lganda foydalaning.
WCSession transferUserInfo va transferFile orqali kechiktirilgan uzatishni qo'llab-quvvatlaydi. Ma'lumotlar soat va telefon o'rtasida navbatdagi aloqa o'rnatilganda yetkaziladi, bu vaqtinchalik aloqa uzilishida ham yetkazilishni kafolatlaydi.
WatchKit da yozilgan ilovalar Apple Watch Series 0 va undan yangilari (watchOS 1+) bilan mos keladi. Biroq ba'zi funksiyalar (GPS, yurak urish sensori, dinamik orol) faqat ma'lum modellarda mavjud.
Ha, bitta ilovada SwiftUI va WatchKit ni birlashtirish mumkin. SwiftUI View ni WKInterfaceController ga joylashtirish uchun WKHostingController dan yoki aksincha — UIViewRepresentable orqali WKInterfaceObject ni integratsiya qiling.
Ulangan qurilmalarda Xcode dan ikkala ilovani (iOS + watchOS) ishga tushiring. WCSessionDelegate xabarlarini kuzatish uchun sozlash konsolidan foydalaning. Ikkala qurilma Bluetooth masofasida (10 metrgacha) ekanligiga ishonch hosil qiling.
Xulosa
Biz kalit topshirig'i bilan mobil ilovani ishlab chiqamiz
IT Sectr 2017-yildan beri startaplar va korxonalar uchun iOS va Android ilovalarini yaratadi. Biz sizga maslahat beramiz va eng yaxshi yechimni taklif qilamiz.