watchOS คือระบบปฏิบัติการของ Apple สำหรับ Apple Watch ซึ่งเปิดตัวครั้งแรกในปี 2015 พร้อมกับนาฬิการุ่นแรก การพัฒนาแอป watchOS ทำด้วยภาษา Swift โดยใช้ SwiftUI และ WatchKit คุณสมบัติ: หน้าจอสี่เหลี่ยมขนาดเล็ก การใช้พลังงานแบตเตอรี่จำกัดที่ 0.3 Wh และการรวมเข้ากับ iPhone อย่างแน่นหนาผ่าน Bluetooth ตามข้อมูลของ Counterpoint Research Apple Watch ครองส่วนแบ่งมากกว่า 30% ของตลาดนาฬิกาอัจฉริยะทั่วโลก
ประเด็นสำคัญ
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
เวอร์ชันแรก 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 1 | 2015 | เวอร์ชันแรก, แอป Apple ดั้งเดิมเท่านั้น |
| watchOS 2 | 2015 | SDK เปิด, แอปของบริษัทอื่น, Watch Connectivity |
| watchOS 3 | 2016 | เปิดแอปทันที, Dock, Scribble |
| watchOS 6 | 2019 | App Store บนนาฬิกา, Cycle Tracking, แอป Noise |
| watchOS 9 | 2022 | ยา, ระยะการนอนหลับ, เพื่อนวิ่งที่ดีขึ้น |
| watchOS 10 | 2023 | Smart Stack, Double Tap, หน้าปัดใหม่ |
สถาปัตยกรรมของ 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 คือเฟรมเวิร์กสำหรับสร้างอินเทอร์เฟซแอป 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
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 — การอัปเดตอินเทอร์เฟซครั้งใหญ่ที่สุดในประวัติศาสตร์ของแพลตฟอร์ม เปิดตัวในเดือนกันยายน 2023 ระบบเปลี่ยนจากการนำทางแบบลำดับชั้นไปเป็นการนำทางเชิงเนื้อหา: หน้าจอหลักกลายเป็น Smart Stack — สแตกวิดเจ็ตอัจฉริยะที่แทนที่ด็อคแอป
Smart Stack คือรายการวิดเจ็ตแนวตั้งที่แสดงใต้หน้าปัดนาฬิกา วิดเจ็ตจะถูกจัดอันดับตามบริบท: ตอนเช้าแสดงสภาพอากาศและปฏิทิน, ตอนกลางวัน — กิจกรรมและการแจ้งเตือน, ตอนเย็น — การทำสมาธิและการเตรียมตัวนอน นักพัฒนาสามารถเพิ่มวิดเจ็ตแบบกำหนดเองผ่าน WidgetKit สำหรับ watchOS โดยใช้ API เดียวกับ iOS 17
Double Tap คือท่าทางการประกบนิ้วชี้และนิ้วหัวแม่มือ ซึ่งเซ็นเซอร์วัดความเร่งและไจโรสโคปตรวจจับได้โดยไม่ต้องแตะหน้าจอ บน Apple Watch Series 9 และ Ultra 2 ท่าทางจะถูกประมวลผลในระดับฮาร์ดแวร์ผ่าน Neural Engine นักพัฒนาได้รับอีเวนต์ผ่าน UIDoubleTapGestureRecognizer หรือผ่านตัวปรับแต่ง SwiftUI .onTapGesture(count: 2) ท่าทางนี้ไม่ต้องปรับเทียบและทำงานได้ในทุกทิศทางของมือ
watchOS 10 นำเสนอ: SwiftUI Animation ที่รองรับแอนิเมชัน Spring และ Keyframe, MapKit สำหรับแสดงแผนที่บนนาฬิกา, VideoPlayer สำหรับเล่นวิดีโอสั้น (สูงสุด 30 วินาที), VoiceOver ที่ปรับปรุงด้วยท่าทาง และกระบวนทัศน์การนำทางใหม่ NavigationStack แทน NavigationView
| API | วัตถุประสงค์ | พร้อมใช้งานตั้งแต่ |
|---|---|---|
| WidgetKit for watchOS | วิดเจ็ตสำหรับ Smart Stack | watchOS 10 |
| UIDoubleTapGesture | ท่าทาง Double Tap | watchOS 10 (S9+) |
| MapKit | แสดงแผนที่บนนาฬิกา | watchOS 10 |
| NavigationStack | กระบวนทัศน์การนำทางใหม่ | watchOS 10 |
| SwiftUI Keyframe | แอนิเมชันแบบเฟรมต่อเฟรม | watchOS 10 |
SwiftUI คือเฟรมเวิร์กหลักสำหรับพัฒนาอินเทอร์เฟซ watchOS Apple แนะนำ SwiftUI สำหรับโปรเจ็กต์ใหม่ทั้งหมดตั้งแต่ watchOS 7 SwiftUI สำหรับนาฬิกาใช้หลักการเดียวกับ iOS แต่มีตัวปรับแต่งและคอมโพเนนต์เฉพาะของ watchOS
SwiftUI สำหรับ watchOS ประกอบด้วย: TabView แบบหน้า (page style) สำหรับปัดระหว่างหน้าจอ, DigitalCrownRotation สำหรับจัดการการหมุนของเม็ดมะยม, SceneStorage สำหรับรักษาสถานะระหว่างการเปิดแอป, WKNotificationScene สำหรับการแจ้งเตือนแบบกำหนดเอง และ ComplicationDescriptor สำหรับข้อมูลบนหน้าปัด
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 คือล้อด้านข้างของ Apple Watch SwiftUI มี DigitalCrownRotation สำหรับผูกค่ากับการหมุนของเม็ดมะยม ตัวปรับแต่งรับ binding, ช่วง และขั้นตอน ท่าทาง: tap (แตะ), longPress (กดค้าง), swipe (ปัด) และ pan (ลาก) — ทั้งหมดเป็นมาตรฐานสำหรับ SwiftUI และปรับให้เข้ากับขนาดหน้าจอนาฬิกา
WatchKit คือเฟรมเวิร์ก watchOS ดั้งเดิมที่ใช้แนวทาง UIKit แม้ว่า Apple จะแนะนำ SwiftUI แต่ WatchKit ยังคงเกี่ยวข้องสำหรับโปรเจ็กต์เก่าและงานเฉพาะ: แอนิเมชันที่ซับซ้อนบน WKInterfaceGroup และการรวม SiriKit
แอป watchOS ประกอบด้วยสองเป้าหมาย: WatchKit Extension (ตรรกะและอินเทอร์เฟซ) และ iOS Companion App (การตั้งค่าและการซิงค์โครไนซ์) ตั้งแต่ Xcode 15 เป็นต้นไป สามารถสร้างแอปแบบสแตนด์อโลนได้โดยไม่มีคู่หู iOS อินเทอร์เฟซอธิบายใน Interface.storyboard (WatchKit) หรือโดยการเขียนโปรแกรมผ่าน SwiftUI
| ส่วนประกอบ | WatchKit | SwiftUI |
|---|---|---|
| หน้าจอ | WKInterfaceController | View |
| ปุ่ม | WKInterfaceButton | Button |
| ตาราง | WKInterfaceTable | List |
| กลุ่ม | WKInterfaceGroup | VStack / HStack |
| รูปภาพ | WKInterfaceImage | Image / AsyncImage |
| ป้าย | WKInterfaceLabel | Text |
| แผนที่ | WKInterfaceMap | Map (watchOS 10+) |
| Complication | CLKComplicationDataSource | ComplicationDescriptor |
Complication คือวิดเจ็ตที่แสดงข้อมูลบนหน้าปัด Apple Watch นักพัฒนานำโปรโตคอล CLKComplicationDataSource ไปใช้ โดยให้เทมเพลตสำหรับหน้าปัดประเภทต่างๆ (circular, rectangular, modular, extraLarge) watchOS 10 รองรับ ComplicationDescriptor — API ที่เรียบง่ายสำหรับ SwiftUI ข้อมูลถูกอัปเดตผ่านงานเบื้องหลังด้วยระยะเวลาสูงสุด 30 นาที
Watch Connectivity คือเฟรมเวิร์กสำหรับแลกเปลี่ยนข้อมูลระหว่าง Apple Watch และ iPhone ผ่าน Bluetooth หรือ Wi-Fi เป็นวิธีการสื่อสารเดียวระหว่างอุปกรณ์ที่จับคู่ WCSession คือคลาสหลักที่จัดการเซสชัน แอป iOS และส่วนขยาย watchOS ต้องนำ WCSessionDelegate ไปใช้
Watch Connectivity มีสี่วิธีการถ่ายโอนข้อมูล: sendMessage — การส่งทันทีพร้อมการยืนยัน (ทำงานเมื่อทั้งสองแอปทำงานอยู่เท่านั้น), transferUserInfo — การส่งพจนานุกรมข้อมูลในเบื้องหลัง, transferFile — การถ่ายโอนไฟล์พร้อมข้อมูลเมตา, updateApplicationContext — การซิงค์โครไนซ์สถานะที่ใช้ร่วมกัน ทุกวิธีการรับประกันการส่งเมื่อการเชื่อมต่อกลับคืนมา
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 เป็นไปตามกฎเดียวกันกับ iOS: ต้องสมัครสมาชิก Apple Developer Program (99 ดอลลาร์/ปี) และผ่านการตรวจสอบ App Review แอปถูกอัปโหลดไปยัง App Store Connect ในฐานะส่วนหนึ่งของแอป iOS หรือเป็นแอปสแตนด์อโลน
แอป watchOS สามารถเผยแพร่ได้สองวิธี: เป็นส่วนขยายในตัวของแอป iOS (บันเดิลแอป iOS มี .app ของ watchOS) หรือเป็นแอปสแตนด์อโลน (ดาวน์โหลดและทำงานโดยไม่ต้องใช้ iPhone) สำหรับโหมดสแตนด์อโลน ต้องใช้ WKRunsIndependently = YES ใน Info.plist ขนาดแอป watchOS จำกัดที่ 50 MB สำหรับการดาวน์โหลดผ่านเครือข่ายมือถือ
ข้อกำหนดพิเศษสำหรับ watchOS: แอปต้องทำงานได้อย่างถูกต้องโดยไม่มี iPhone ที่ทำงานอยู่ (หากอ้างว่าเป็นสแตนด์อโลน), อินเทอร์เฟซต้องอ่านได้โดยไม่ต้องซูม, องค์ประกอบที่โต้ตอบได้ทั้งหมดต้องมีขนาดอย่างน้อย 44 จุด ห้ามแอปที่ทำซ้ำฟังก์ชันในตัว (เช่น เครื่องวัดอัตราการเต้นของหัวใจที่ไม่มีมูลค่าเพิ่ม)
| ข้อกำหนด | คำอธิบาย |
|---|---|
| ขนาดแอป | สูงสุด 50 MB สำหรับดาวน์โหลดผ่านมือถือ, สูงสุด 4 GB ผ่าน Wi-Fi |
| โหมดสแตนด์อโลน | WKRunsIndependently = YES ใน Info.plist |
| เป้าหมายสัมผัส | ขั้นต่ำ 44 pt สำหรับองค์ประกอบที่โต้ตอบได้ทั้งหมด |
| ความปลอดภัย | ข้อมูล HealthKit ไม่สามารถส่งไปยังเซิร์ฟเวอร์โดยไม่ได้รับความยินยอม |
| ประสิทธิภาพ | การเปิดแอปไม่เกิน 5 วินาที |
คำถามที่พบบ่อย
ภาษาหลักคือ Swift กับเฟรมเวิร์ก SwiftUI WatchKit บน UIKit ก็รองรับเช่นกัน แต่ Apple แนะนำ SwiftUI สำหรับโปรเจ็กต์ watchOS ใหม่ทั้งหมด Objective-C ใช้เฉพาะในแอปเก่าที่เผยแพร่ก่อนปี 2019 ตั้งแต่ watchOS 7 ตัวอย่างทั้งหมดของ Apple ใช้เฉพาะ SwiftUI
ตั้งแต่ watchOS 6 Apple Watch สามารถติดตั้งแอปได้โดยตรงจาก App Store โดยไม่ต้องใช้ iPhone อย่างไรก็ตาม ฟังก์ชันหลายอย่าง — การซิงค์ข้อมูล, การแจ้งเตือนแบบพุช, ตำแหน่งทางภูมิศาสตร์ — ต้องใช้การจับคู่กับ iPhone แอปแบบสแตนด์อโลนอย่างสมบูรณ์สามารถทำได้ด้วย watchOS 9 และ WKRunsIndependently ในการตั้งค่าบิลด์
อายุแบตเตอรี่ทั่วไปของ Apple Watch Series 9 สูงสุด 18 ชั่วโมงในโหมดผสม เมื่อใช้ GPS และเครื่องวัดอัตราการเต้นของหัวใจอย่างต่อเนื่อง — 5-7 ชั่วโมง watchOS 10 ปรับการใช้พลังงานให้เหมาะสมผ่าน Smart Stack และ BGTaskScheduler โดยลดกิจกรรมเบื้องหลังของแอปได้ถึง 4 เท่าเมื่อเทียบกับ watchOS 9
เฟรมเวิร์ก Watch Connectivity มีสี่วิธี: sendMessage (การถ่ายโอนทันที), transferUserInfo (เบื้องหลัง), transferFile (ไฟล์สูงสุด 100 MB) และ updateApplicationContext (การซิงค์สถานะ) ทุกวิธีทำงานผ่าน Bluetooth หรือ Wi-Fi โดยมีการจัดคิวอัตโนมัติเมื่อการเชื่อมต่อขาดหาย
Apple Watch Series 9 และ Ultra 2 ประกอบด้วย: เซ็นเซอร์วัดความเร่ง, ไจโรสโคป, เครื่องวัดอัตราการเต้นของหัวใจแบบออปติคอลและไฟฟ้า, SpO2 (ความอิ่มตัวของออกซิเจน), เซ็นเซอร์อุณหภูมิข้อมือ, บารอมิเตอร์, เข็มทิศ, GPS L1+L5 และไมโครโฟน การเข้าถึงเซ็นเซอร์ผ่าน HealthKit และ Core Motion ข้อมูลอัตราการเต้นของหัวใจและ SpO2 ต้องได้รับอนุญาตอย่างชัดแจ้งจากผู้ใช้
สรุป
เราจะพัฒนาแอปพลิเคชันบนมือถือแบบครบวงจร
IT Sectr สร้างแอปพลิเคชัน iOS และ Android สำหรับสตาร์ทอัพและธุรกิจตั้งแต่ปี 2017 เราจะให้คำแนะนำและเสนอวิธีแก้ปัญหาที่ดีที่สุดแก่คุณ