watchOS: พื้นฐานการพัฒนา Apple Watch ด้วย SwiftUI

ผู้แต่ง: IT Sectr เผยแพร่เมื่อ: 2026-02-07 เวลาอ่าน: 12 นาที

watchOS คือระบบปฏิบัติการของ Apple สำหรับ Apple Watch ซึ่งเปิดตัวครั้งแรกในปี 2015 พร้อมกับนาฬิการุ่นแรก การพัฒนาแอป watchOS ทำด้วยภาษา Swift โดยใช้ SwiftUI และ WatchKit คุณสมบัติ: หน้าจอสี่เหลี่ยมขนาดเล็ก การใช้พลังงานแบตเตอรี่จำกัดที่ 0.3 Wh และการรวมเข้ากับ iPhone อย่างแน่นหนาผ่าน Bluetooth ตามข้อมูลของ Counterpoint Research Apple Watch ครองส่วนแบ่งมากกว่า 30% ของตลาดนาฬิกาอัจฉริยะทั่วโลก

ประเด็นสำคัญ

  • watchOS — ระบบปฏิบัติการสำหรับ Apple Watch บนเคอร์เนล XNU ที่เน้นการใช้พลังงานต่ำ
  • SwiftUI — เฟรมเวิร์กหลักสำหรับพัฒนาอินเทอร์เฟซแอป watchOS
  • Watch Connectivity — กลไกการแลกเปลี่ยนข้อมูลระหว่าง Apple Watch และ iPhone
  • Smart Stack — สแตกวิดเจ็ตอัจฉริยะที่เปิดตัวใน watchOS 10
  • HealthKit — เฟรมเวิร์กสำหรับเข้าถึงเซ็นเซอร์: อัตราการเต้นของหัวใจ, SpO2, อุณหภูมิ, เซ็นเซอร์วัดความเร่ง

watchOS คืออะไร?

watchOS คือระบบปฏิบัติการสำหรับนาฬิกาอัจฉริยะของ Apple ซึ่งใช้เคอร์เนล Darwin XNU เปิดตัวครั้งแรกเมื่อวันที่ 24 เมษายน 2015 พร้อมกับ Apple Watch Series 0 ระบบถูกสร้างบนสถาปัตยกรรมเดียวกับ iOS แต่ปรับให้เหมาะสมสำหรับหน้าจอขนาดเล็ก (1.5 ถึง 1.9 นิ้ว), หน่วยความจำจำกัด (สูงสุด 1 GB RAM ใน Series 9) และการใช้พลังงานน้อยที่สุด

ตามข้อมูลของ StatCounter (2026) watchOS ครองส่วนแบ่งประมาณ 55% ของตลาดระบบปฏิบัติการนาฬิกาอัจฉริยะ นำหน้า Wear OS และระบบเฉพาะของผู้ผลิตจีน Apple ปล่อยอัปเดต watchOS หลักทุกปี โดยรองรับนาฬิกานานถึง 5 ปีนับจากวันที่วางจำหน่าย

คุณสมบัติหลักของ watchOS คือการพึ่งพา iPhone แอปส่วนใหญ่ใช้ Watch Connectivity สำหรับการซิงค์ข้อมูล ตั้งแต่ watchOS 6 เป็นต้นไป นาฬิกาสามารถติดตั้งแอปได้โดยตรงจาก App Store แต่ความเป็นอิสระอย่างสมบูรณ์จาก iPhone รองรับเฉพาะกับ watchOS 9

ประวัติเวอร์ชัน watchOS

เวอร์ชันแรก Watch OS 1.0 ไม่รองรับแอปของบริษัทอื่น — มีเพียงแอปที่ติดตั้งมากับเครื่องของ Apple watchOS 2 (2015) เปิด SDK สำหรับนักพัฒนา watchOS 3 (2016) เร่งความเร็วการเปิดแอป 7 เท่า watchOS 6 (2019) นำเสนอ App Store บนนาฬิกา watchOS 9 (2022) เพิ่มการติดตามยาและการติดตามการนอนหลับที่ดีขึ้น watchOS 10 (2023) กลายเป็นการอัปเดตอินเทอร์เฟซครั้งใหญ่ที่สุดนับตั้งแต่เปิดตัว

เวอร์ชัน watchOSปีนวัตกรรมสำคัญ
Watch OS 12015เวอร์ชันแรก, แอป Apple ดั้งเดิมเท่านั้น
watchOS 22015SDK เปิด, แอปของบริษัทอื่น, Watch Connectivity
watchOS 32016เปิดแอปทันที, Dock, Scribble
watchOS 62019App Store บนนาฬิกา, Cycle Tracking, แอป Noise
watchOS 92022ยา, ระยะการนอนหลับ, เพื่อนวิ่งที่ดีขึ้น
watchOS 102023Smart Stack, Double Tap, หน้าปัดใหม่

สถาปัตยกรรมของ watchOS

สถาปัตยกรรมของ watchOS ประกอบด้วยสามชั้น ซึ่งแยกฮาร์ดแวร์ออกจากแอปพลิเคชันผู้ใช้ ต่างจาก iOS ตรงที่ watchOS ใช้แนวทางแบบคอมโพเนนต์: แอปประกอบด้วยสองเป้าหมาย — ส่วนขยาย (extension) และโฮสต์บน iPhone

เคอร์เนลและบริการระบบ

ชั้นล่างสุดคือเคอร์เนล XNU ที่ดัดแปลงพร้อมไดรเวอร์สำหรับชิป S4/S5/S6/S7/S8/S9 ของ Apple Apple Watch Series 9 ใช้ S9 SiP พร้อมทรานซิสเตอร์ 5.6 พันล้านตัวและ Neural Engine 4 คอร์ บริการระบบประกอบด้วย Core Bluetooth, Watch Connectivity, HealthKit และ Core Motion งานเบื้องหลังทั้งหมดได้รับการจัดการผ่าน BGTaskScheduler — ตัวจัดตารางเวลาระบบที่ปรับการใช้พลังงานให้เหมาะสม

WatchKit — ชั้นแอปพลิเคชัน

WatchKit คือเฟรมเวิร์กสำหรับสร้างอินเทอร์เฟซแอป watchOS ประกอบด้วย WKInterfaceController, WKInterfaceGroup, WKInterfaceLabel และ WKInterfaceButton ตั้งแต่ watchOS 6 Apple แนะนำ SwiftUI แทน WatchKit SwiftUI มีความสามารถเดียวกันแต่ใช้ไวยากรณ์แบบประกาศ (declarative) และปรับให้เข้ากับขนาดหน้าจอโดยอัตโนมัติ: 38 มม. (272×340), 42 มม. (312×390), 40 มม. (324×394), 44 มม. (368×448), 45 มม. (396×484), 49 มม. (410×502 บน Apple Watch Ultra)

โหมดเบื้องหลังและการใช้พลังงาน

watchOS จำกัดกิจกรรมเบื้องหลังของแอปเพื่อประหยัดแบตเตอรี่ โหมดเบื้องหลังที่มี: Workout (การออกกำลังกาย), HealthKit (การติดตามสุขภาพ), Location (ตำแหน่งทางภูมิศาสตร์), Audio (เครื่องเล่นเสียง) และ Complication (ข้อมูลบนหน้าปัด) แต่ละโหมดต้องมี capability แยกต่างหากใน entitlements การใช้พลังงานโดยทั่วไป: แอปที่ใช้งานอยู่ — 50-80 mA, โหมดเบื้องหลัง — 5-15 mA, สแตนด์บาย — 1-3 mA

swift
import BackgroundTasks
import WatchKit

/// การกำหนดเวลาอัปเดตข้อมูลเบื้องหลังบน watchOS
class BackgroundTaskManager: NSObject {

    func scheduleBackgroundRefresh() {
        let request = BGAppRefreshTaskRequest(identifier: "com.example.refresh")
        request.earliestBeginDate = Date(timeIntervalSinceNow: 30 * 60)

        try? BGTaskScheduler.shared.submit(request)
    }

    func handleAppRefresh(task: BGAppRefreshTask) {
        task.expirationHandler = { task.setTaskCompleted(success: false) }

        DataService.shared.fetchData { result in
            switch result {
            case .success:
                ComplicationController.reloadComplications()
                task.setTaskCompleted(success: true)
            case .failure:
                task.setTaskCompleted(success: false)
            }
        }
    }
}

/// การลงทะเบียนงานเบื้องหลังใน WKExtensionDelegate
class ExtensionDelegate: NSObject, WKExtensionDelegate {
    let manager = BackgroundTaskManager()

    func handle(_ backgroundTasks: Set<WKBackgroundTask>) {
        for task in backgroundTasks {
            switch task {
            case let refreshTask as BGAppRefreshTask:
                manager.handleAppRefresh(task: refreshTask)
            default:
                task.setTaskCompleted(success: false)
            }
        }
    }
}

BGTaskScheduler รับประกันว่างานเบื้องหลังจะทำงานในช่วงเวลาที่เหมาะสมที่สุด — เมื่อนาฬิกากำลังชาร์จและเชื่อมต่อกับ iPhone WKExtensionDelegate จัดการงานเบื้องหลังที่เข้ามาและอัปเดตข้อมูลบนหน้าปัด ComplicationController.reloadComplications อัปเดตวิดเจ็ตบนหน้าปัดที่เลือก

watchOS 10: Smart Stack และ Double Tap

watchOS 10 — การอัปเดตอินเทอร์เฟซครั้งใหญ่ที่สุดในประวัติศาสตร์ของแพลตฟอร์ม เปิดตัวในเดือนกันยายน 2023 ระบบเปลี่ยนจากการนำทางแบบลำดับชั้นไปเป็นการนำทางเชิงเนื้อหา: หน้าจอหลักกลายเป็น Smart Stack — สแตกวิดเจ็ตอัจฉริยะที่แทนที่ด็อคแอป

Smart Stack

Smart Stack คือรายการวิดเจ็ตแนวตั้งที่แสดงใต้หน้าปัดนาฬิกา วิดเจ็ตจะถูกจัดอันดับตามบริบท: ตอนเช้าแสดงสภาพอากาศและปฏิทิน, ตอนกลางวัน — กิจกรรมและการแจ้งเตือน, ตอนเย็น — การทำสมาธิและการเตรียมตัวนอน นักพัฒนาสามารถเพิ่มวิดเจ็ตแบบกำหนดเองผ่าน WidgetKit สำหรับ watchOS โดยใช้ API เดียวกับ iOS 17

Double Tap

Double Tap คือท่าทางการประกบนิ้วชี้และนิ้วหัวแม่มือ ซึ่งเซ็นเซอร์วัดความเร่งและไจโรสโคปตรวจจับได้โดยไม่ต้องแตะหน้าจอ บน Apple Watch Series 9 และ Ultra 2 ท่าทางจะถูกประมวลผลในระดับฮาร์ดแวร์ผ่าน Neural Engine นักพัฒนาได้รับอีเวนต์ผ่าน UIDoubleTapGestureRecognizer หรือผ่านตัวปรับแต่ง SwiftUI .onTapGesture(count: 2) ท่าทางนี้ไม่ต้องปรับเทียบและทำงานได้ในทุกทิศทางของมือ

API ใหม่สำหรับนักพัฒนา

watchOS 10 นำเสนอ: SwiftUI Animation ที่รองรับแอนิเมชัน Spring และ Keyframe, MapKit สำหรับแสดงแผนที่บนนาฬิกา, VideoPlayer สำหรับเล่นวิดีโอสั้น (สูงสุด 30 วินาที), VoiceOver ที่ปรับปรุงด้วยท่าทาง และกระบวนทัศน์การนำทางใหม่ NavigationStack แทน NavigationView

APIวัตถุประสงค์พร้อมใช้งานตั้งแต่
WidgetKit for watchOSวิดเจ็ตสำหรับ Smart StackwatchOS 10
UIDoubleTapGestureท่าทาง Double TapwatchOS 10 (S9+)
MapKitแสดงแผนที่บนนาฬิกาwatchOS 10
NavigationStackกระบวนทัศน์การนำทางใหม่watchOS 10
SwiftUI Keyframeแอนิเมชันแบบเฟรมต่อเฟรมwatchOS 10

SwiftUI สำหรับ Apple Watch

SwiftUI คือเฟรมเวิร์กหลักสำหรับพัฒนาอินเทอร์เฟซ watchOS Apple แนะนำ SwiftUI สำหรับโปรเจ็กต์ใหม่ทั้งหมดตั้งแต่ watchOS 7 SwiftUI สำหรับนาฬิกาใช้หลักการเดียวกับ iOS แต่มีตัวปรับแต่งและคอมโพเนนต์เฉพาะของ watchOS

คอมโพเนนต์ SwiftUI เฉพาะของ watchOS

SwiftUI สำหรับ watchOS ประกอบด้วย: TabView แบบหน้า (page style) สำหรับปัดระหว่างหน้าจอ, DigitalCrownRotation สำหรับจัดการการหมุนของเม็ดมะยม, SceneStorage สำหรับรักษาสถานะระหว่างการเปิดแอป, WKNotificationScene สำหรับการแจ้งเตือนแบบกำหนดเอง และ ComplicationDescriptor สำหรับข้อมูลบนหน้าปัด

swift
import SwiftUI
import HealthKit

/// แอป watchOS สำหรับตรวจสอบอัตราการเต้นของหัวใจ
@main
struct HeartMonitorApp: App {
    var body: some Scene {
        WindowGroup {
            ContentView()
        }
        WKNotificationScene(
            controller: NotificationController.self,
            category: "heartAlert"
        )
    }
}

struct ContentView: View {
    @State private var heartRate: Double = 0
    private let healthStore = HKHealthStore()

    var body: some View {
        TabView {
            HeartRateView(rate: heartRate)
                .tabItem { Label("อัตราการเต้นของหัวใจ", systemImage: "heart.fill") }

            StepsView()
                .tabItem { Label("จำนวนก้าว", systemImage: "figure.walk") }

            SettingsView()
                .tabItem { Label("การตั้งค่า", systemImage: "gear") }
        }
        .tabViewStyle(.page)
        .onAppear(perform: setupHealthKit)
    }

    private func setupHealthKit() {
        guard HKHealthStore.isHealthDataAvailable() else { return }
        let heartType = HKQuantityType(.heartRate)

        healthStore.requestAuthorization(toShare: nil, read: [heartType]) { success, error in
            guard success else { return }
            startHeartRateQuery()
        }
    }

    private func startHeartRateQuery() {
        let heartType = HKQuantityType(.heartRate)
        let query = HKObserverQuery(sampleType: heartType, predicate: nil) { _, _, error in
            guard error == nil else { return }
            fetchLatestHeartRate()
        }
        healthStore.execute(query)
    }

    private func fetchLatestHeartRate() {
        let heartType = HKQuantityType(.heartRate)
        let sort = NSSortDescriptor(key: HKSampleSortIdentifierStartDate, ascending: false)
        let query = HKSampleQuery(sampleType: heartType, predicate: nil,
                                    limit: 1, sortDescriptors: [sort]) { _, samples, _ in
            guard let sample = samples?.first as? HKQuantitySample else { return }
            let rate = sample.quantity.doubleValue(for: HKUnit(from: "count/min"))
            DispatchQueue.main.async { heartRate = rate }
        }
        healthStore.execute(query)
    }
}

struct HeartRateView: View {
    let rate: Double

    var body: some View {
        VStack(spacing: 12) {
            Image(systemName: "heart.fill")
                .foregroundStyle(.red)
                .font(.system(size: 48))
                .symbolEffect(.pulse)

            Text("\(Int(rate))")
                .font(.system(.title, design: .rounded))
                .contentTransition(.numericText())
                .bold()

            Text("ครั้ง/นาที")
                .font(.caption)
                .foregroundStyle(.secondary)
        }
    }
}

แอป HeartMonitorApp แสดงโครงสร้างแอป watchOS ทั่วไปใน SwiftUI: TabView แบบหน้าสำหรับปัดระหว่างหน้าจอ, การรวม HealthKit สำหรับการอ่านอัตราการเต้นของหัวใจแบบเรียลไทม์, WKNotificationScene สำหรับจัดการการแจ้งเตือน SymbolEffect พร้อมแอนิเมชันแบบจังหวะใช้การเร่งฮาร์ดแวร์ Neural Engine เพื่อแอนิเมชันที่ลื่นไหลโดยไม่ใช้ CPU

Digital Crown และท่าทาง

Digital Crown คือล้อด้านข้างของ Apple Watch SwiftUI มี DigitalCrownRotation สำหรับผูกค่ากับการหมุนของเม็ดมะยม ตัวปรับแต่งรับ binding, ช่วง และขั้นตอน ท่าทาง: tap (แตะ), longPress (กดค้าง), swipe (ปัด) และ pan (ลาก) — ทั้งหมดเป็นมาตรฐานสำหรับ SwiftUI และปรับให้เข้ากับขนาดหน้าจอนาฬิกา

WatchKit และส่วนประกอบของแอป watchOS

WatchKit คือเฟรมเวิร์ก watchOS ดั้งเดิมที่ใช้แนวทาง UIKit แม้ว่า Apple จะแนะนำ SwiftUI แต่ WatchKit ยังคงเกี่ยวข้องสำหรับโปรเจ็กต์เก่าและงานเฉพาะ: แอนิเมชันที่ซับซ้อนบน WKInterfaceGroup และการรวม SiriKit

โครงสร้างแอป watchOS

แอป watchOS ประกอบด้วยสองเป้าหมาย: WatchKit Extension (ตรรกะและอินเทอร์เฟซ) และ iOS Companion App (การตั้งค่าและการซิงค์โครไนซ์) ตั้งแต่ Xcode 15 เป็นต้นไป สามารถสร้างแอปแบบสแตนด์อโลนได้โดยไม่มีคู่หู iOS อินเทอร์เฟซอธิบายใน Interface.storyboard (WatchKit) หรือโดยการเขียนโปรแกรมผ่าน SwiftUI

ส่วนประกอบWatchKitSwiftUI
หน้าจอWKInterfaceControllerView
ปุ่มWKInterfaceButtonButton
ตารางWKInterfaceTableList
กลุ่มWKInterfaceGroupVStack / HStack
รูปภาพWKInterfaceImageImage / AsyncImage
ป้ายWKInterfaceLabelText
แผนที่WKInterfaceMapMap (watchOS 10+)
ComplicationCLKComplicationDataSourceComplicationDescriptor

Complications — ข้อมูลบนหน้าปัด

Complication คือวิดเจ็ตที่แสดงข้อมูลบนหน้าปัด Apple Watch นักพัฒนานำโปรโตคอล CLKComplicationDataSource ไปใช้ โดยให้เทมเพลตสำหรับหน้าปัดประเภทต่างๆ (circular, rectangular, modular, extraLarge) watchOS 10 รองรับ ComplicationDescriptor — API ที่เรียบง่ายสำหรับ SwiftUI ข้อมูลถูกอัปเดตผ่านงานเบื้องหลังด้วยระยะเวลาสูงสุด 30 นาที

การรวมเข้ากับ iPhone ผ่าน Watch Connectivity

Watch Connectivity คือเฟรมเวิร์กสำหรับแลกเปลี่ยนข้อมูลระหว่าง Apple Watch และ iPhone ผ่าน Bluetooth หรือ Wi-Fi เป็นวิธีการสื่อสารเดียวระหว่างอุปกรณ์ที่จับคู่ WCSession คือคลาสหลักที่จัดการเซสชัน แอป iOS และส่วนขยาย watchOS ต้องนำ WCSessionDelegate ไปใช้

วิธีการถ่ายโอนข้อมูล

Watch Connectivity มีสี่วิธีการถ่ายโอนข้อมูล: sendMessage — การส่งทันทีพร้อมการยืนยัน (ทำงานเมื่อทั้งสองแอปทำงานอยู่เท่านั้น), transferUserInfo — การส่งพจนานุกรมข้อมูลในเบื้องหลัง, transferFile — การถ่ายโอนไฟล์พร้อมข้อมูลเมตา, updateApplicationContext — การซิงค์โครไนซ์สถานะที่ใช้ร่วมกัน ทุกวิธีการรับประกันการส่งเมื่อการเชื่อมต่อกลับคืนมา

swift
import WatchConnectivity

/// ตัวจัดการการซิงค์ระหว่าง iPhone และ Apple Watch
final class ConnectivityManager: NSObject, WCSessionDelegate {

    static let shared = ConnectivityManager()
    private let session = WCSession.default

    override private init() {
        super.init()
        session.delegate = self
        session.activate()
    }

    // MARK: — ส่งข้อมูลจาก iPhone ไปยังนาฬิกา
    func sendWorkoutData(_ data: [String: Any]) {
        guard session.isReachable else {
            // หากนาฬิกาไม่พร้อมใช้งาน — บันทึกในบริบท
            try? session.updateApplicationContext(data)
            return
        }
        session.sendMessage(data, replyHandler: nil) { error in
            print("ข้อผิดพลาดในการส่ง: \(error.localizedDescription)")
        }
    }

    // MARK: — รับข้อมูลบนนาฬิกา
    func session(_ session: WCSession,
                 didReceiveMessage message: [String: Any]) {
        DispatchQueue.main.async {
            NotificationCenter.default.post(
                name: NSNotification.Name("dataReceived"),
                object: message
            )
        }
    }

    func session(_ session: WCSession,
                 activationDidCompleteWith activationState: WCSessionActivationState,
                 error: Error?) {
        print("WCSession เปิดใช้งานแล้ว: \(activationState.rawValue)")
    }

    // ไม่จำเป็นบน watchOS แต่จำเป็นสำหรับโปรโตคอล
    func sessionDidBecomeInactive(_ session: WCSession) {}
    func sessionDidDeactivate(_ session: WCSession) {
        session.activate()
    }
}

ConnectivityManager นำซิงเกิลตันไปใช้สำหรับทำงานกับ WCSession sendWorkoutData ตรวจสอบ isReachable: หากนาฬิกาทำงานอยู่ ข้อมูลจะถูกส่งทันทีผ่าน sendMessage; หากไม่ — จะถูกบันทึกใน applicationContext เพื่อส่งภายหลัง onReceiveMessage ฝั่งผู้รับประมวลผลข้อความที่เข้ามาและแจ้งเตือนแอปผ่าน NotificationCenter

การแลกเปลี่ยนไฟล์และการซิงค์โครไนซ์

transferFile อนุญาตให้ถ่ายโอนข้อมูลปริมาณมาก: รูปภาพ, ไฟล์เสียง, ไฟล์เก็บถาวร ขนาดไฟล์สูงสุด 100 MB ไฟล์ถูกบันทึกในไดเรกทอรี Inbox บนอุปกรณ์ที่รับ transferUserInfo เหมาะสำหรับข้อมูล JSON สูงสุด 100 KB ทุกวิธีการทำงานในเบื้องหลัง: หากอุปกรณ์ไม่พร้อมใช้งาน การถ่ายโอนจะถูกจัดคิวและเริ่มใหม่โดยอัตโนมัติเมื่อการเชื่อมต่อกลับคืนมา

การเผยแพร่แอป watchOS

การเผยแพร่แอป watchOS เป็นไปตามกฎเดียวกันกับ iOS: ต้องสมัครสมาชิก Apple Developer Program (99 ดอลลาร์/ปี) และผ่านการตรวจสอบ App Review แอปถูกอัปโหลดไปยัง App Store Connect ในฐานะส่วนหนึ่งของแอป iOS หรือเป็นแอปสแตนด์อโลน

การสร้างและเผยแพร่

แอป watchOS สามารถเผยแพร่ได้สองวิธี: เป็นส่วนขยายในตัวของแอป iOS (บันเดิลแอป iOS มี .app ของ watchOS) หรือเป็นแอปสแตนด์อโลน (ดาวน์โหลดและทำงานโดยไม่ต้องใช้ iPhone) สำหรับโหมดสแตนด์อโลน ต้องใช้ WKRunsIndependently = YES ใน Info.plist ขนาดแอป watchOS จำกัดที่ 50 MB สำหรับการดาวน์โหลดผ่านเครือข่ายมือถือ

ข้อกำหนดของ App Review

ข้อกำหนดพิเศษสำหรับ watchOS: แอปต้องทำงานได้อย่างถูกต้องโดยไม่มี iPhone ที่ทำงานอยู่ (หากอ้างว่าเป็นสแตนด์อโลน), อินเทอร์เฟซต้องอ่านได้โดยไม่ต้องซูม, องค์ประกอบที่โต้ตอบได้ทั้งหมดต้องมีขนาดอย่างน้อย 44 จุด ห้ามแอปที่ทำซ้ำฟังก์ชันในตัว (เช่น เครื่องวัดอัตราการเต้นของหัวใจที่ไม่มีมูลค่าเพิ่ม)

ข้อกำหนดคำอธิบาย
ขนาดแอปสูงสุด 50 MB สำหรับดาวน์โหลดผ่านมือถือ, สูงสุด 4 GB ผ่าน Wi-Fi
โหมดสแตนด์อโลนWKRunsIndependently = YES ใน Info.plist
เป้าหมายสัมผัสขั้นต่ำ 44 pt สำหรับองค์ประกอบที่โต้ตอบได้ทั้งหมด
ความปลอดภัยข้อมูล HealthKit ไม่สามารถส่งไปยังเซิร์ฟเวอร์โดยไม่ได้รับความยินยอม
ประสิทธิภาพการเปิดแอปไม่เกิน 5 วินาที

คำถามที่พบบ่อย

ภาษาใดบ้างที่ใช้ในการพัฒนา watchOS?

ภาษาหลักคือ Swift กับเฟรมเวิร์ก SwiftUI WatchKit บน UIKit ก็รองรับเช่นกัน แต่ Apple แนะนำ SwiftUI สำหรับโปรเจ็กต์ watchOS ใหม่ทั้งหมด Objective-C ใช้เฉพาะในแอปเก่าที่เผยแพร่ก่อนปี 2019 ตั้งแต่ watchOS 7 ตัวอย่างทั้งหมดของ Apple ใช้เฉพาะ SwiftUI

จำเป็นต้องใช้ iPhone สำหรับการทำงานของแอป watchOS หรือไม่?

ตั้งแต่ watchOS 6 Apple Watch สามารถติดตั้งแอปได้โดยตรงจาก App Store โดยไม่ต้องใช้ iPhone อย่างไรก็ตาม ฟังก์ชันหลายอย่าง — การซิงค์ข้อมูล, การแจ้งเตือนแบบพุช, ตำแหน่งทางภูมิศาสตร์ — ต้องใช้การจับคู่กับ iPhone แอปแบบสแตนด์อโลนอย่างสมบูรณ์สามารถทำได้ด้วย watchOS 9 และ WKRunsIndependently ในการตั้งค่าบิลด์

อายุแบตเตอรี่ของ Apple Watch เมื่อใช้แอปอย่างต่อเนื่องคือเท่าใด?

อายุแบตเตอรี่ทั่วไปของ Apple Watch Series 9 สูงสุด 18 ชั่วโมงในโหมดผสม เมื่อใช้ GPS และเครื่องวัดอัตราการเต้นของหัวใจอย่างต่อเนื่อง — 5-7 ชั่วโมง watchOS 10 ปรับการใช้พลังงานให้เหมาะสมผ่าน Smart Stack และ BGTaskScheduler โดยลดกิจกรรมเบื้องหลังของแอปได้ถึง 4 เท่าเมื่อเทียบกับ watchOS 9

วิธีการถ่ายโอนข้อมูลระหว่าง iPhone และ Apple Watch?

เฟรมเวิร์ก Watch Connectivity มีสี่วิธี: sendMessage (การถ่ายโอนทันที), transferUserInfo (เบื้องหลัง), transferFile (ไฟล์สูงสุด 100 MB) และ updateApplicationContext (การซิงค์สถานะ) ทุกวิธีทำงานผ่าน Bluetooth หรือ Wi-Fi โดยมีการจัดคิวอัตโนมัติเมื่อการเชื่อมต่อขาดหาย

เซ็นเซอร์ใดบ้างที่พร้อมใช้งานบน Apple Watch?

Apple Watch Series 9 และ Ultra 2 ประกอบด้วย: เซ็นเซอร์วัดความเร่ง, ไจโรสโคป, เครื่องวัดอัตราการเต้นของหัวใจแบบออปติคอลและไฟฟ้า, SpO2 (ความอิ่มตัวของออกซิเจน), เซ็นเซอร์อุณหภูมิข้อมือ, บารอมิเตอร์, เข็มทิศ, GPS L1+L5 และไมโครโฟน การเข้าถึงเซ็นเซอร์ผ่าน HealthKit และ Core Motion ข้อมูลอัตราการเต้นของหัวใจและ SpO2 ต้องได้รับอนุญาตอย่างชัดแจ้งจากผู้ใช้

สรุป

  • watchOS — ระบบปฏิบัติการของ Apple สำหรับนาฬิกาอัจฉริยะบนเคอร์เนล XNU เน้นประสิทธิภาพพลังงานและการรวมเข้ากับ iPhone
  • SwiftUI — เฟรมเวิร์กหลักสำหรับ watchOS ให้เลย์เอาต์แบบประกาศและการปรับขนาดหน้าจออัตโนมัติ
  • watchOS 10 นำเสนอ Smart Stack, Double Tap (S9+), NavigationStack และ WidgetKit สำหรับวิดเจ็ต
  • Watch Connectivity — ช่องทางการสื่อสารเดียวกับ iPhone ผ่าน Bluetooth/Wi-Fi พร้อมสี่โหมดการถ่ายโอน
  • HealthKit ให้การเข้าถึงเซ็นเซอร์ Apple Watch: อัตราการเต้นของหัวใจ, SpO2, อุณหภูมิ, เซ็นเซอร์วัดความเร่ง, GPS
  • Complications — วิดเจ็ตบนหน้าปัดที่ใช้งานผ่าน CLKComplicationDataSource หรือ SwiftUI
  • การเผยแพร่ ต้องใช้ Apple Developer Program, ขนาดสูงสุด 50 MB (มือถือ) และการควบคุมประสิทธิภาพที่เข้มงวด

เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร

IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ

ปรึกษาโครงการ

อ่านเพิ่มเติม