WatchKit — یہ کیا ہے، Apple Watch فریم ورک اور watchOS

مصنف: IT Sectr اشاعت: 2026-06-16 مطالعے کا وقت: 8 منٹ

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 پر ایپلیکیشنز بنانے کے لیے ہے، جو WKInterface UI اجزاء اور WKInterfaceController پر مبنی نیویگیشن استعمال کرتا ہے۔
  • WKInterfaceController ایپلیکیشن کا مرکزی اسکرین کلاس ہے، جو iOS پر UIViewController کی طرح ہے، جس میں لائف سائیکل مینجمنٹ اور درجہ بندی ہے۔
  • WCSession Apple Watch اور iPhone کے درمیان مواصلاتی میکانزم ہے، جو Bluetooth کے ذریعے ڈیٹا، فائل اور سیاق و سباق کی منتقلی کی اجازت دیتا ہے۔
  • WKInterfaceDevice ڈیوائس کی معلومات فراہم کرتا ہے: اسکرین کا سائز، ماڈل، watchOS ورژن اور ہارڈویئر اجزاء کی صلاحیتیں۔
  • Complications Controller ایک API ہے جو CLKComplicationDataSource کے ذریعے چہرے پر ڈیٹا ظاہر کرنے کے لیے فعال ہوتا ہے۔

WatchKit کیا ہے اور یہ کیسے کام کرتا ہے؟

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%) ہیں۔

watchOS کے لیے WatchKit بمقابلہ SwiftUI

SwiftUI watchOS 6 سے شروع ہو کر watchOS کے لیے انٹرفیس بنانے کا Apple کا تجویز کردہ طریقہ ہے۔ SwiftUI اعلانیہ نحو اور اسکرین سائز کے ساتھ خودکار موافقت فراہم کرتا ہے۔ تاہم، WatchKit ان پروجیکٹس کے لیے جو SwiftUI کے وجود میں آنے سے پہلے شروع ہوئے، مخصوص عناصر (WKInterfaceMap، WKInterfaceMovie) کے استعمال کے لیے، اور ان صورتوں میں جہاں watchOS ورژن 6 سے نیچے کی سپورٹ کی ضرورت ہو، متعلقہ رہتا ہے۔

معیارWatchKitSwiftUI
Apple کی سفارشLegacyموجودہ
کم از کم watchOSwatchOS 1watchOS 6
کوڈ کا حجمزیادہکم
کمپلیکیشن انضمامکلاسز کے ذریعے براہ راستWidgetKit کے ذریعے
WKInterfaceMapہاںنقشہ (MapKit)

WatchKit انٹرفیس: WKInterfaceController اور عناصر

WKInterfaceController WatchKit میں اسکرینوں کو منظم کرنے کے لیے بنیادی کلاس ہے۔ یہ لائف سائیکل کو ہینڈل کرتا ہے: ابتدا (awake(withContext:))، ظاہر ہونا (willActivate)، غائب ہونا (didDeactivate) اور کنٹرولرز کے درمیان سیاق و سباق کی منتقلی۔ ہر ایپ اسکرین کو ایک علیحدہ WKInterfaceController ذیلی کلاس کے ذریعے ظاہر کیا جاتا ہے جو Interface Builder کے ذریعے Storyboard سے منسلک ہوتا ہے۔ نیویگیشن درجہ بندی (push) یا موڈل (present) ہو سکتی ہے۔

WatchKit WKInterface سابقہ کے ساتھ انٹرفیس عناصر کا ایک سیٹ فراہم کرتا ہے: WKInterfaceLabel (متن)، WKInterfaceButton (بٹن)، WKInterfaceTable (جدول)، WKInterfaceImage (تصویر)، WKInterfaceMap (نقشہ) اور WKInterfaceGroup (گول کونوں اور پس منظر کے ساتھ کنٹینر)۔ تمام عناصر غیر ہم آہنگی سے کام کرتے ہیں — UI تبدیلیاں قطار میں لگ جاتی ہیں اور سسٹم کے ذریعے رینڈر سائیکلوں کے درمیان لاگو ہوتی ہیں، جو گھڑی کی اسکرین پر مستحکم 30 FPS کو یقینی بناتی ہیں۔

بنیادی WKInterfaceController

swift
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: Watch اور iPhone کے درمیان مواصلات

WCSession Bluetooth یا Wi-Fi کے ذریعے Apple Watch اور iPhone کے درمیان دو طرفہ مواصلات کے لیے مرکزی کلاس ہے۔ سیشن چھوٹے ڈیٹا ڈکشنری (updateApplicationContext) کی منتقلی، فوری جواب کے ساتھ پیغام بھیجنا (sendMessage)، فائلیں منتقل کرنا (transferFile) اور پیچیدہ اشیاء کو ہم آہنگ کرنا (transferUserInfo) کی اجازت دیتا ہے۔ WCSession غیر ہم آہنگی سے کام کرتا ہے اور خود بخود بہترین مواصلاتی چینل کا انتخاب کرتا ہے۔

WCSession استعمال کرنے کے لیے، آپ کو دونوں آلات پر سیشن کو فعال کرنا ہوگا۔ Watch ایپ willActivate() طریقہ میں WCSession بناتی ہے، جبکہ iOS ایپ AppDelegate یا SceneDelegate میں ایسا کرتی ہے۔ فعال ہونے کے بعد، آلات ممکن ہونے پر خود بخود سیاق و سباق کو ہم آہنگ کرتے ہیں۔ آنے والا ڈیٹا وصول کرنے اور کنکشن کی حالت کی نگرانی کے لیے WCSessionDelegate کو ہینڈل کرنا ضروری ہے۔

Watch کی طرف WCSession کی مثال

swift
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: گھڑی کے چہرے پر ڈیٹا

Complications چھوٹے ڈیٹا عناصر ہیں جو Apple Watch کے چہرے پر ظاہر ہوتے ہیں اور ایپ کھولے بغیر معلومات تک فوری رسائی فراہم کرتے ہیں۔ WatchKit CLKComplicationDataSource فراہم کرتا ہے — ایک پروٹوکول جس کا نفاذ ایپ کو کمپلیکیشنز کے لیے ڈیٹا فراہم کرنے کی اجازت دیتا ہے۔ گھڑی کا چہرہ خود فیصلہ کرتا ہے کہ کون سے مقامات دستیاب ہیں — سرکلر، مستطیل، کونے یا ماڈیولر۔

ڈیولپر تین سائز فیملیز کے لیے کمپلیکیشنز فراہم کر سکتا ہے: CLKComplicationFamily — circularSmall، extraLarge، graphicCircular، graphicRectangular، graphicCorner، graphicBezel، modularSmall، modularLarge اور utilitarianSmall/Large۔ ہر فیملی کے اپنے طول و عرض اور ڈسپلے فارمیٹ ہوتے ہیں۔ ایک ایپ متعدد فیملیز کو سپورٹ کر سکتی ہے، لیکن کم از کم دو — گرافک اور ماڈیولر — تجویز کی جاتی ہیں۔

CLKComplicationDataSource کی مثال

swift
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)
    }
}

Swift میں WatchKit ایپ کی مثال

WatchKit ایپ بنانا Xcode میں WatchKit App Target شامل کرنے سے شروع ہوتا ہے۔ Xcode ایک ابتدائی کنٹرولر کے ساتھ Interface.storyboard تیار کرتا ہے اور اسے خود بخود InterfaceController کلاس سے منسلک کرتا ہے۔ ڈیولپر Interface Builder کے ذریعے UI عناصر شامل کرتا ہے اور کوڈ سے تعامل کے لیے IBOutlets بناتا ہے۔ ذیل میں WCSession کے ذریعے iPhone سے موصول ہونے والے ڈیٹا کے جدول کے ساتھ ایک مکمل کنٹرولر کی مثال ہے۔

swift
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

Workout API WatchKit کلاسز کا ایک مجموعہ ہے جو فٹنس ایپس بنانے کے لیے ہے جو Apple Watch پر پس منظر میں ورزش چلا سکتی ہیں۔ API سینسرز تک رسائی فراہم کرتا ہے: ایکسلرومیٹر، گائروسکوپ، دل کی دھڑکن مانیٹر (HKHealthStore کے ذریعے) اور GPS (GPS والے Watch ماڈلز پر)۔ ورزشیں HealthKit سے HKWorkoutSession کے ذریعے شروع کی جاتی ہیں، اور دل کی دھڑکن کا ڈیٹا HKSampleQuery کے ذریعے ریئل ٹائم میں اپ ڈیٹ ہوتا ہے۔

Workout API کا اہم فائدہ پس منظر میں کام کرنا ہے۔ جب ورزش فعال ہوتی ہے، صارف کی کلائی نیچے کرنے پر watchOS ایپ کو معطل نہیں کرتا — سینسر ڈیٹا اکٹھا کرتے رہتے ہیں اور ایپ دل کی دھڑکن، فاصلہ، رفتار اور دیگر میٹرکس ظاہر کر سکتی ہے۔ ورزش ختم ہونے کے بعد، ڈیٹا HealthKit کے ذریعے iPhone پر ہیلتھ ایپ کے ساتھ ہم آہنگ ہوتا ہے، جو صارف کے لیے ایک متحد فٹنس پروفائل فراہم کرتا ہے۔

سینسرز کے ساتھ ورزش شروع کرنا

swift
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()
    }
}

اکثر پوچھے گئے سوالات

کیا مجھے نئے پروجیکٹ میں WatchKit استعمال کرنا چاہیے؟

Apple نئی watchOS ایپس کے لیے SwiftUI کی سفارش کرتا ہے۔ WatchKit کو صرف لیگیسی پروجیکٹس کو سپورٹ کرنے کے لیے یا اگر آپ کو SwiftUI میں دستیاب نہ ہونے والی مخصوص فعالیت جیسے WKInterfaceMap کی ضرورت ہو تو استعمال کریں۔

کنکشن کے بغیر Watch سے iPhone میں ڈیٹا کیسے منتقل کیا جائے؟

WCSession transferUserInfo اور transferFile کے ذریعے موخر منتقلی کو سپورٹ کرتا ہے۔ ڈیٹا گھڑی اور فون کے درمیان اگلے کنکشن قائم ہونے پر پہنچایا جائے گا، جو عارضی کنیکٹیویٹی کی کمی پر بھی ترسیل کو یقینی بناتا ہے۔

کیا WatchKit ایپس Apple Watch کے تمام ماڈلز پر کام کرتی ہیں؟

WatchKit کے ساتھ لکھی گئی ایپس Apple Watch Series 0 اور نئے (watchOS 1+) کے ساتھ مطابقت رکھتی ہیں۔ تاہم، کچھ خصوصیات (GPS، دل کی دھڑکن مانیٹر، Dynamic Island) صرف مخصوص ماڈلز پر دستیاب ہیں۔

کیا میں ایک ہی ایپ میں SwiftUI اور WatchKit استعمال کر سکتا ہوں؟

ہاں، آپ ایک ایپ میں SwiftUI اور WatchKit کو یکجا کر سکتے ہیں۔ WKInterfaceController میں SwiftUI ویوز ایمبیڈ کرنے کے لیے WKHostingController استعمال کریں، یا UIViewRepresentable کے ذریعے WKInterfaceObjects کو ضم کریں۔

حقیقی آلات پر WCSession کو ڈیبگ کیسے کریں؟

منسلک آلات پر Xcode سے دونوں ایپس (iOS + watchOS) چلائیں۔ WCSessionDelegate پیغامات کی نگرانی کے لیے ڈیبگ کنسول استعمال کریں۔ یقینی بنائیں کہ دونوں آلات Bluetooth کی حدود (10 میٹر تک) میں ہیں۔

خلاصہ

  • WatchKit Apple کا ایک فریم ورک ہے جو Apple Watch پر ایپس بنانے کے لیے ہے، جو WKInterface UI اجزاء اور WKInterfaceController کنٹرولرز استعمال کرتا ہے۔
  • WCSession پیغامات، فائلوں اور سیاق و سباق کی حمایت کے ساتھ Bluetooth/Wi-Fi کے ذریعے Watch اور iPhone کے درمیان دو طرفہ مواصلات کے لیے مرکزی میکانزم ہے۔
  • Complications CLKComplicationDataSource کے ذریعے Apple Watch کے چہرے پر ڈیٹا ہے جو 9 ڈسپلے فیملیز کو سپورٹ کرتا ہے۔
  • Workout API HKWorkoutSession کے ذریعے پس منظر میں دل کی دھڑکن، GPS اور ایکسلرومیٹر ڈیٹا اکٹھا کرنے والی فٹنس ایپس کے لیے کلاسز کا ایک مجموعہ ہے۔
  • SwiftUI نئے پروجیکٹس کے لیے Apple کا تجویز کردہ طریقہ ہے، لیکن WatchKit لیگیسی ایپس اور مخصوص فعالیت کے لیے متعلقہ رہتا ہے۔
  • امتزاج WKHostingController اور UIViewRepresentable کے ذریعے ایک ایپ میں WatchKit اور SwiftUI کا امتزاج ممکن ہے۔

ہم ایک موبائل ایپلیکیشن ٹرنکی تیار کریں گے

IT Sectr 2017 سے اسٹارٹ اپس اور کاروبار کے لیے iOS اور Android ایپلیکیشنز بناتا ہے۔ ہم آپ کو مشورہ دیں گے اور بہترین حل تجویز کریں گے۔

پروجیکٹ پر بحث کریں

مزید پڑھیں