watchOS — το λειτουργικό σύστημα της Apple για το Apple Watch, που κυκλοφόρησε για πρώτη φορά το 2015 μαζί με τα πρώτα ρολόγια. Η ανάπτυξη εφαρμογών για watchOS γίνεται σε Swift με χρήση SwiftUI και WatchKit. Χαρακτηριστικά: μικρή ορθογώνια οθόνη, περιορισμένη κατανάλωση ενέργειας από μπαταρία 0,3 Wh και στενή ενσωμάτωση με iPhone μέσω Bluetooth. Σύμφωνα με στοιχεία της Counterpoint Research, το Apple Watch κατέχει πάνω από το 30% της παγκόσμιας αγοράς έξυπνων ρολογιών.
Κύρια σημεία
watchOS — το λειτουργικό σύστημα για τα έξυπνα ρολόγια της Apple, βασισμένο στον πυρήνα XNU Darwin. Κυκλοφόρησε για πρώτη φορά στις 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 δισεκατομμύρια τρανζίστορ και 4-πύρηνο Neural Engine. Οι υπηρεσίες συστήματος περιλαμβάνουν Core Bluetooth, Watch Connectivity, HealthKit και Core Motion. Όλες οι εργασίες παρασκηνίου διαχειρίζονται από τον BGTaskScheduler — τον προγραμματιστή συστήματος που βελτιστοποιεί την κατανάλωση ενέργειας.
WatchKit — πλαίσιο για τη δημιουργία διεπαφών εφαρμογών watchOS. Περιλαμβάνει WKInterfaceController, WKInterfaceGroup, WKInterfaceLabel και WKInterfaceButton. Από το watchOS 6, η Apple συνιστά το SwiftUI αντί του WatchKit. Το SwiftUI παρέχει τις ίδιες δυνατότητες, αλλά με δηλωτική σύνταξη και αυτόματη προσαρμογή στο μέγεθος οθόνης: 38 mm (272×340), 42 mm (312×390), 40 mm (324×394), 44 mm (368×448), 45 mm (396×484), 49 mm (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 ενημερώνει τα widget στην επιλεγμένη όψη ρολογιού.
watchOS 10 — η μεγαλύτερη ενημέρωση διεπαφής στην ιστορία της πλατφόρμας, που κυκλοφόρησε τον Σεπτέμβριο του 2023. Το σύστημα μεταπήδησε από την ιεραρχική πλοήγηση στην πλοήγηση προσανατολισμένη στο περιεχόμενο: η κύρια οθόνη έγινε το Smart Stack — μια έξυπνη στοίβα widget που αντικατέστησε τη βάση εφαρμογών.
Smart Stack — κάθετη λίστα widget που εμφανίζεται κάτω από την όψη του ρολογιού. Τα widget ταξινομούνται ανάλογα με το πλαίσιο: το πρωί εμφανίζεται ο καιρός και το ημερολόγιο, το μεσημέρι — η δραστηριότητα και οι υπενθυμίσεις, το βράδυ — ο διαλογισμός και η προετοιμασία για ύπνο. Ο προγραμματιστής μπορεί να προσθέσει προσαρμοσμένα widget μέσω του 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 | Widget για 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 με στιλ σελίδας για σάρωση μεταξύ οθονών, 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("bpm")
.font(.caption)
.foregroundStyle(.secondary)
}
}
}Η εφαρμογή HeartMonitorApp παρουσιάζει την τυπική δομή μιας εφαρμογής watchOS σε SwiftUI: TabView με στιλ σελίδας για σάρωση μεταξύ οθονών, ενσωμάτωση με HealthKit για ανάγνωση παλμού σε πραγματικό χρόνο, WKNotificationScene για επεξεργασία ειδοποιήσεων. Το SymbolEffect με κινούμενο σχέδιο pulse χρησιμοποιεί επιτάχυνση υλικού του 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+) |
| Όψη ρολογιού | CLKComplicationDataSource | ComplicationDescriptor |
Complication — widget που εμφανίζει δεδομένα στην όψη του Apple Watch. Ο προγραμματιστής υλοποιεί το πρωτόκολλο CLKComplicationDataSource, παρέχοντας πρότυπα για διαφορετικούς τύπους όψεων ρολογιού (circular, rectangular, modular, extraLarge). Το watchOS 10 υποστηρίζει ComplicationDescriptor — απλοποιημένο API για SwiftUI. Τα δεδομένα ενημερώνονται μέσω Background Tasks με περίοδο έως 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("Send error: \(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 activated: \(activationState.rawValue)")
}
// Δεν απαιτείται στο watchOS, αλλά υποχρεωτικό για το πρωτόκολλο
func sessionDidBecomeInactive(_ session: WCSession) {}
func sessionDidDeactivate(_ session: WCSession) {
session.activate()
}
}Το ConnectivityManager υλοποιεί ένα singleton για εργασία με 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 bundle περιέχει το watchOS .app) ή ως αυτόνομη εφαρμογή (μεταφορτώνεται και λειτουργεί χωρίς 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. Ωστόσο, πολλές λειτουργίες — συγχρονισμός δεδομένων, ειδοποιήσεις push, γεωγραφική θέση — απαιτούν σύζευξη με 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. Θα σας συμβουλεύσουμε και θα προτείνουμε την καλύτερη λύση.
Διαβάστε επίσης