WatchKit Apple का एक फ्रेमवर्क है जो Apple Watch पर एप्लिकेशन बनाने के लिए है, जिसे 2014 में watchOS 1 के साथ घोषित किया गया था। यह WKInterface UI तत्वों का एक सेट प्रदान करता है — बटन, लेबल, टेबल, मानचित्र — और स्क्रीन के बीच नेविगेशन तंत्र। हालाँकि आधुनिक watchOS विकास तेजी से SwiftUI की ओर बढ़ रहा है, WatchKit मौजूदा अनुप्रयोगों और उन परिदृश्यों के समर्थन के लिए महत्वपूर्ण बना हुआ है जहाँ इंटरफ़ेस पर पूर्ण नियंत्रण आवश्यक है। Apple Developer Documentation, 2026 के अनुसार, WatchKit अभी भी watchOS App Store कैटलॉग के 35% ऐप्स में उपयोग किया जाता है, जिसमें फ़िटनेस ऐप्स, नेविगेटर और त्वरित डेटा एक्सेस के लिए उपयोगिताएँ शामिल हैं।
मुख्य बिंदु
WatchKit Apple का एक फ्रेमवर्क है जो Apple Watch पर एप्लिकेशन बनाने के लिए API प्रदान करता है। watchOS 2 (2015) से शुरू होकर, WatchKit ऐप्स सीधे वॉच पर चलते हैं न कि iPhone पर, जो उन्हें फ़ोन से निरंतर कनेक्शन के बिना डेटा प्रोसेस करने और इंटरफ़ेस प्रदर्शित करने की अनुमति देता है। इससे पहले, watchOS 1 में, सभी ऐप्स iPhone पर चलते थे और वॉच केवल एक रिमोट डिस्प्ले थी, जिससे UI में महत्वपूर्ण देरी होती थी।
आधुनिक WatchKit आर्किटेक्चर में दो घटक शामिल हैं: WatchKit App (वॉच पर Storyboard + संसाधन) और WatchKit Extension (वॉच पर चलने वाला कोड)। उपयोगकर्ता मूल iOS एप्लिकेशन इंस्टॉल करते समय App Store के माध्यम से दोनों घटकों को इंस्टॉल करता है। WatchKit सिस्टम सुविधाओं के साथ एकीकृत होता है: सूचनाएँ (UNUserNotificationCenter के माध्यम से), कॉम्प्लिकेशन (वॉच फ़ेस पर डेटा), Workout API और HealthKit।
Counterpoint Research (2025) के अनुसार, Apple Watch के पास वैश्विक स्मार्टवॉच बाज़ार का 52% हिस्सा है, और औसत उपयोगकर्ता WatchKit या SwiftUI का उपयोग करने वाले 6–8 तृतीय-पक्ष ऐप्स इंस्टॉल करता है। सबसे लोकप्रिय श्रेणियाँ फ़िटनेस (56%), स्वास्थ्य (22%), नेविगेशन (9%) और उपयोगिताएँ (8%) हैं।
SwiftUI watchOS 6 से शुरू होकर watchOS के लिए इंटरफ़ेस बनाने का Apple का अनुशंसित तरीका है। SwiftUI घोषणात्मक सिंटैक्स और स्क्रीन आकारों के लिए स्वचालित अनुकूलन प्रदान करता है। हालाँकि, WatchKit SwiftUI के अस्तित्व में आने से पहले शुरू किए गए प्रोजेक्ट्स के लिए, विशिष्ट तत्वों (WKInterfaceMap, WKInterfaceMovie) के उपयोग के लिए, और watchOS संस्करण 6 से नीचे के समर्थन की आवश्यकता वाले मामलों में प्रासंगिक बना हुआ है।
| मानदंड | WatchKit | SwiftUI |
|---|---|---|
| Apple अनुशंसा | Legacy | वर्तमान |
| न्यूनतम watchOS | watchOS 1 | watchOS 6 |
| कोड वॉल्यूम | अधिक | कम |
| कॉम्प्लिकेशन एकीकरण | कक्षाओं के माध्यम से सीधा | WidgetKit के माध्यम से |
| WKInterfaceMap | हाँ | Map (MapKit) |
WKInterfaceController WatchKit में स्क्रीन प्रबंधित करने के लिए आधार क्लास है। यह जीवनचक्र को संभालता है: आरंभीकरण (awake(withContext:)), प्रकटन (willActivate), गायब होना (didDeactivate) और नियंत्रकों के बीच संदर्भ स्थानांतरण। प्रत्येक ऐप स्क्रीन को एक अलग WKInterfaceController उपवर्ग द्वारा दर्शाया जाता है जो Interface Builder के माध्यम से Storyboard से जुड़ा होता है। नेविगेशन पदानुक्रमित (push) या मोडल (present) हो सकता है।
WatchKit WKInterface उपसर्ग के साथ इंटरफ़ेस तत्वों का एक सेट प्रदान करता है: WKInterfaceLabel (टेक्स्ट), WKInterfaceButton (बटन), WKInterfaceTable (टेबल), WKInterfaceImage (छवि), WKInterfaceMap (मानचित्र) और WKInterfaceGroup (गोल कोनों और पृष्ठभूमि वाला कंटेनर)। सभी तत्व एसिंक्रोनस रूप से काम करते हैं — UI परिवर्तन कतारबद्ध होते हैं और रेंडर चक्रों के बीच सिस्टम द्वारा लागू किए जाते हैं, जो वॉच स्क्रीन पर स्थिर 30 FPS सुनिश्चित करता है।
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("नमस्ते, Watch!")
}
override func willActivate() {
super.willActivate()
actionButton.setTitle("शुरू करें")
}
@IBAction func didTapButton() {
pushController(withName: "DetailController", context: nil)
}
}
WCSession Bluetooth या Wi-Fi के माध्यम से Apple Watch और iPhone के बीच दो-तरफ़ा संचार के लिए केंद्रीय क्लास है। सत्र छोटे डेटा शब्दकोशों (updateApplicationContext) को स्थानांतरित करने, तत्काल प्रतिक्रिया के साथ संदेश भेजने (sendMessage), फ़ाइलों (transferFile) को स्थानांतरित करने और जटिल ऑब्जेक्ट्स (transferUserInfo) को सिंक करने की अनुमति देता है। WCSession एसिंक्रोनस रूप से काम करता है और स्वचालित रूप से इष्टतम संचार चैनल का चयन करता है।
WCSession का उपयोग करने के लिए, आपको दोनों डिवाइसों पर सत्र सक्रिय करना होगा। Watch ऐप willActivate() विधि में WCSession बनाता है, जबकि iOS ऐप AppDelegate या SceneDelegate में ऐसा करता है। सक्रिय होने के बाद, डिवाइस संभव होने पर स्वचालित रूप से संदर्भ सिंक करते हैं। आने वाले डेटा प्राप्त करने और कनेक्शन स्थिति की निगरानी के लिए WCSessionDelegate को संभालना महत्वपूर्ण है।
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 फ़ेस पर प्रदर्शित होते हैं और ऐप खोले बिना जानकारी तक त्वरित पहुँच प्रदान करते हैं। WatchKit CLKComplicationDataSource प्रदान करता है — एक प्रोटोकॉल जिसका कार्यान्वयन ऐप को कॉम्प्लिकेशन के लिए डेटा प्रदान करने की अनुमति देता है। वॉच फ़ेस स्वयं तय करता है कि कौन से स्थान उपलब्ध हैं — गोलाकार, आयताकार, कोने या मॉड्यूलर।
डेवलपर तीन आकार परिवारों के लिए कॉम्प्लिकेशन प्रदान कर सकता है: CLKComplicationFamily — circularSmall, extraLarge, graphicCircular, graphicRectangular, graphicCorner, graphicBezel, modularSmall, modularLarge और utilitarianSmall/Large। प्रत्येक परिवार के अपने आयाम और प्रदर्शन प्रारूप होते हैं। एक ऐप कई परिवारों का समर्थन कर सकता है, लेकिन न्यूनतम दो — ग्राफिक और मॉड्यूलर — अनुशंसित है।
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 ऐप बनाना Xcode में WatchKit App Target जोड़ने से शुरू होता है। Xcode एक प्रारंभिक नियंत्रक के साथ Interface.storyboard उत्पन्न करता है और इसे स्वचालित रूप से InterfaceController क्लास से जोड़ता है। डेवलपर Interface Builder के माध्यम से UI तत्व जोड़ता है और कोड से इंटरैक्शन के लिए IBOutlets बनाता है। नीचे WCSession के माध्यम से iPhone से प्राप्त डेटा की तालिका के साथ एक पूर्ण नियंत्रक उदाहरण है।
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 WatchKit कक्षाओं का एक सेट है जो फ़िटनेस ऐप बनाने के लिए है जो पृष्ठभूमि में Apple Watch पर वर्कआउट चला सकते हैं। API सेंसर तक पहुँच प्रदान करता है: एक्सेलेरोमीटर, जाइरोस्कोप, हृदय गति मॉनिटर (HKHealthStore के माध्यम से) और GPS (GPS वाले Watch मॉडल पर)। वर्कआउट HealthKit से HKWorkoutSession के माध्यम से शुरू किए जाते हैं, और हृदय गति डेटा HKSampleQuery के माध्यम से वास्तविक समय में अपडेट होता है।
Workout API का मुख्य लाभ पृष्ठभूमि संचालन है। जब वर्कआउट सक्रिय होता है, watchOS उपयोगकर्ता के कलाई नीचे करने पर ऐप को निलंबित नहीं करता — सेंसर डेटा एकत्र करना जारी रखते हैं, और ऐप हृदय गति, दूरी, गति और अन्य मीट्रिक प्रदर्शित कर सकता है। वर्कआउट समाप्त होने के बाद, डेटा HealthKit के माध्यम से iPhone पर स्वास्थ्य ऐप के साथ सिंक होता है, जो उपयोगकर्ता के लिए एक एकीकृत फ़िटनेस प्रोफ़ाइल प्रदान करता है।
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()
}
}
अक्सर पूछे जाने वाले प्रश्न
Apple नए watchOS ऐप्स के लिए SwiftUI की अनुशंसा करता है। WatchKit का उपयोग केवल लीगेसी प्रोजेक्ट समर्थन के लिए या यदि आपको SwiftUI में उपलब्ध नहीं होने वाली विशिष्ट कार्यक्षमता जैसे WKInterfaceMap की आवश्यकता है, तो करें।
WCSession transferUserInfo और transferFile के माध्यम से विलंबित स्थानांतरण का समर्थन करता है। डेटा वॉच और फ़ोन के बीच कनेक्शन स्थापित होने पर अगली बार वितरित किया जाएगा, जो अस्थायी कनेक्टिविटी हानि पर भी वितरण सुनिश्चित करता है।
WatchKit के साथ लिखे गए ऐप्स Apple Watch Series 0 और नए (watchOS 1+) के साथ संगत हैं। हालाँकि, कुछ सुविधाएँ (GPS, हृदय गति मॉनिटर, Dynamic Island) केवल विशिष्ट मॉडलों पर उपलब्ध हैं।
हाँ, आप एक ही ऐप में SwiftUI और WatchKit को जोड़ सकते हैं। WKHostingController का उपयोग करके WKInterfaceController में SwiftUI व्यू एम्बेड करें, या UIViewRepresentable के माध्यम से WKInterfaceObjects को एकीकृत करें।
कनेक्टेड डिवाइसों पर Xcode से दोनों ऐप्स (iOS + watchOS) चलाएँ। WCSessionDelegate संदेशों की निगरानी के लिए डीबग कंसोल का उपयोग करें। सुनिश्चित करें कि दोनों डिवाइस Bluetooth रेंज (10 मीटर तक) के भीतर हैं।
सारांश
हम एक मोबाइल एप्लिकेशन टर्नकी विकसित करेंगे
IT Sectr 2017 से स्टार्टअप और व्यवसायों के लिए iOS और Android एप्लिकेशन बनाता है। हम आपको सलाह देंगे और सर्वोत्तम समाधान प्रस्तावित करेंगे।