WatchKit — was ist das, das Apple Watch Framework und watchOS

Autor: IT Sectr Veröffentlicht: 2026-06-16 Lesezeit: 8 Min.

WatchKit ist ein Apple-Framework zur Erstellung von Anwendungen auf der Apple Watch, das 2014 zusammen mit watchOS 1 angekündigt wurde. Es bietet eine Reihe von WKInterface-UI-Elementen — Schaltflächen, Labels, Tabellen, Karten — und Navigationsmechanismen zwischen Bildschirmen. Obwohl die moderne watchOS-Entwicklung zunehmend auf SwiftUI umsteigt, bleibt WatchKit wichtig für die Unterstützung bestehender Anwendungen und Szenarien, in denen eine vollständige Kontrolle über die Benutzeroberfläche erforderlich ist. Laut Apple Developer Documentation, 2026 wird WatchKit immer noch in 35% der Apps im watchOS App Store-Katalog verwendet, darunter Fitness-Apps, Navigations-Apps und Dienstprogramme für den schnellen Datenzugriff.

Wichtige Punkte

  • WatchKit ist ein Apple-Framework zur Erstellung von Anwendungen auf der Apple Watch, das WKInterface-UI-Komponenten und eine auf WKInterfaceController basierende Navigation verwendet.
  • WKInterfaceController ist die Hauptbildschirmklasse der Anwendung, ähnlich dem UIViewController unter iOS, mit Lebenszyklusverwaltung und Hierarchie.
  • WCSession ist der Kommunikationsmechanismus zwischen Apple Watch und iPhone, der die Übertragung von Daten, Dateien und Kontext über Bluetooth ermöglicht.
  • WKInterfaceDevice stellt Geräteinformationen bereit: Bildschirmgröße, Modell, watchOS-Version und Hardwarekomponentenfähigkeiten.
  • Complications Controller ist eine API zur Anzeige von Daten auf dem Zifferblatt, die über CLKComplicationDataSource aktiviert wird.

Was ist WatchKit und wie funktioniert es?

WatchKit ist ein Apple-Framework, das eine API zur Erstellung von Anwendungen auf der Apple Watch bereitstellt. Ab watchOS 2 (2015) laufen WatchKit-Apps direkt auf der Uhr und nicht auf dem iPhone, sodass sie Daten verarbeiten und die Benutzeroberfläche ohne ständige Verbindung zum Telefon anzeigen können. Zuvor liefen unter watchOS 1 alle Apps auf dem iPhone und die Uhr war nur ein Remote-Display, was zu erheblichen UI-Verzögerungen führte.

Die moderne WatchKit-Architektur umfasst zwei Komponenten: WatchKit App (Storyboard + Ressourcen auf der Uhr) und WatchKit Extension (Code, der auf der Uhr ausgeführt wird). Der Benutzer installiert beide Komponenten über den App Store bei der Installation der zugehörigen iOS-App. WatchKit integriert sich in Systemfunktionen: Benachrichtigungen (über UNUserNotificationCenter), Komplikationen (Daten auf dem Zifferblatt), Workout API und HealthKit.

Laut Counterpoint Research (2025) hält die Apple Watch 52% des weltweiten Smartwatch-Marktes, und der durchschnittliche Benutzer installiert 6–8 Drittanbieter-Apps, die WatchKit oder SwiftUI verwenden. Die beliebtesten Kategorien sind Fitness (56%), Gesundheit (22%), Navigation (9%) und Dienstprogramme (8%).

WatchKit vs. SwiftUI für watchOS

SwiftUI ist die von Apple empfohlene Methode zur Erstellung von Oberflächen für watchOS ab watchOS 6. SwiftUI bietet deklarative Syntax und automatische Anpassung an Bildschirmgrößen. WatchKit bleibt jedoch relevant für Projekte, die vor dem Erscheinen von SwiftUI begonnen wurden, zur Verwendung spezifischer Elemente (WKInterfaceMap, WKInterfaceMovie) und in Fällen, in denen Unterstützung für watchOS-Versionen unter 6 erforderlich ist.

KriteriumWatchKitSwiftUI
Apple-EmpfehlungLegacyAktuell
Mindest-watchOSwatchOS 1watchOS 6
Code-UmfangMehrWeniger
KomplikationsintegrationDirekt über KlassenÜber WidgetKit
WKInterfaceMapJaKarte (MapKit)

WatchKit-Oberfläche: WKInterfaceController und Elemente

WKInterfaceController ist die Basisklasse zur Verwaltung von Bildschirmen in WatchKit. Sie verwaltet den Lebenszyklus: Initialisierung (awake(withContext:)), Erscheinen (willActivate), Verschwinden (didDeactivate) und Kontextübergabe zwischen Controllern. Jeder App-Bildschirm wird durch eine separate WKInterfaceController-Unterklasse dargestellt, die über Interface Builder mit dem Storyboard verbunden ist. Die Navigation kann hierarchisch (push) oder modal (present) erfolgen.

WatchKit bietet eine Reihe von Oberflächenelementen mit dem Präfix WKInterface: WKInterfaceLabel (Text), WKInterfaceButton (Schaltfläche), WKInterfaceTable (Tabelle), WKInterfaceImage (Bild), WKInterfaceMap (Karte) und WKInterfaceGroup (Container mit abgerundeten Ecken und Hintergrund). Alle Elemente arbeiten asynchron — UI-Änderungen werden in eine Warteschlange gestellt und vom System zwischen den Renderzyklen angewendet, wodurch stabile 30 FPS auf dem Uhrenbildschirm gewährleistet werden.

Basis-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("Hallo, Watch!")
    }
    
    override func willActivate() {
        super.willActivate()
        actionButton.setTitle("Starten")
    }
    
    @IBAction func didTapButton() {
        pushController(withName: "DetailController", context: nil)
    }
}

WCSession: Kommunikation zwischen Watch und iPhone

WCSession ist die zentrale Klasse für die bidirektionale Kommunikation zwischen Apple Watch und iPhone über Bluetooth oder Wi-Fi. Die Sitzung ermöglicht die Übertragung kleiner Datenwörterbücher (updateApplicationContext), das Senden von Nachrichten mit sofortiger Antwort (sendMessage), das Übertragen von Dateien (transferFile) und das Synchronisieren komplexer Objekte (transferUserInfo). WCSession arbeitet asynchron und wählt automatisch den optimalen Kommunikationskanal aus.

Um WCSession zu verwenden, müssen Sie die Sitzung auf beiden Geräten aktivieren. Die Watch-App erstellt eine WCSession in der Methode willActivate(), während die iOS-App dies in AppDelegate oder SceneDelegate tut. Nach der Aktivierung synchronisieren die Geräte automatisch den Kontext, wenn möglich. Es ist wichtig, den WCSessionDelegate zu behandeln, um eingehende Daten zu empfangen und den Verbindungsstatus zu überwachen.

WCSession-Beispiel auf der Watch-Seite

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: Daten auf dem Zifferblatt

Complications sind kleine Datenelemente, die auf dem Apple Watch-Zifferblatt angezeigt werden und schnellen Zugriff auf Informationen ermöglichen, ohne die App zu öffnen. WatchKit bietet CLKComplicationDataSource — ein Protokoll, dessen Implementierung es der App ermöglicht, Daten für Komplikationen bereitzustellen. Das Zifferblatt entscheidet selbst, welche Positionen verfügbar sind — kreisförmig, rechteckig, eckig oder modular.

Entwickler können Komplikationen für drei Größenfamilien bereitstellen: CLKComplicationFamily — circularSmall, extraLarge, graphicCircular, graphicRectangular, graphicCorner, graphicBezel, modularSmall, modularLarge und utilitarianSmall/Large. Jede Familie hat ihre eigenen Abmessungen und Anzeigeformate. Eine App kann mehrere Familien unterstützen, aber mindestens zwei — grafisch und modular — werden empfohlen.

CLKComplicationDataSource-Beispiel

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

Beispiel einer WatchKit-App in Swift

Die Erstellung einer WatchKit-App beginnt mit dem Hinzufügen eines WatchKit App Targets in Xcode. Xcode generiert ein Interface.storyboard mit einem anfänglichen Controller und verknüpft es automatisch mit der Klasse InterfaceController. Der Entwickler fügt UI-Elemente über Interface Builder hinzu und erstellt IBOutlets für die Interaktion aus dem Code. Unten ist ein vollständiges Beispiel eines Controllers mit einer Tabelle von Daten, die über WCSession vom iPhone empfangen wurden.

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 für Fitnessanwendungen

Workout API ist eine Sammlung von WatchKit-Klassen zur Erstellung von Fitness-Apps, die Workouts auf der Apple Watch im Hintergrund ausführen können. Die API bietet Zugriff auf Sensoren: Beschleunigungsmesser, Gyroskop, Herzfrequenzmesser (über HKHealthStore) und GPS (bei Watch-Modellen mit GPS). Workouts werden über HKWorkoutSession von HealthKit gestartet, und Herzfrequenzdaten werden in Echtzeit über HKSampleQuery aktualisiert.

Der Hauptvorteil der Workout API ist der Hintergrundbetrieb. Wenn ein Training aktiv ist, pausiert watchOS die App nicht, wenn der Benutzer das Handgelenk senkt — die Sensoren sammeln weiterhin Daten und die App kann Herzfrequenz, Distanz, Tempo und andere Metriken anzeigen. Nach Beendigung des Trainings werden die Daten über HealthKit mit der Health-App auf dem iPhone synchronisiert, wodurch ein einheitliches Fitnessprofil für den Benutzer entsteht.

Starten eines Trainings mit Sensoren

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

Häufig gestellte Fragen

Sollte ich WatchKit in einem neuen Projekt verwenden?

Apple empfiehlt SwiftUI für neue watchOS-Apps. Verwenden Sie WatchKit nur zur Unterstützung von Legacy-Projekten oder wenn Sie spezifische Funktionen wie WKInterfaceMap benötigen, die in SwiftUI nicht verfügbar sind.

Wie übertrage ich Daten ohne Verbindung vom Watch auf das iPhone?

WCSession unterstützt die verzögerte Übertragung über transferUserInfo und transferFile. Die Daten werden beim nächsten Verbindungsaufbau zwischen Uhr und Telefon zugestellt, was die Zustellung auch bei vorübergehendem Verbindungsverlust gewährleistet.

Funktionieren WatchKit-Apps auf allen Apple Watch-Modellen?

Mit WatchKit geschriebene Apps sind mit Apple Watch Series 0 und neuer (watchOS 1+) kompatibel. Einige Funktionen (GPS, Herzfrequenzmesser, Dynamic Island) sind jedoch nur auf bestimmten Modellen verfügbar.

Kann ich SwiftUI und WatchKit in derselben App verwenden?

Ja, Sie können SwiftUI und WatchKit in einer einzigen App kombinieren. Verwenden Sie WKHostingController, um SwiftUI-Ansichten in einen WKInterfaceController einzubetten, oder integrieren Sie WKInterfaceObjects über UIViewRepresentable.

Wie debugge ich WCSession auf echten Geräten?

Führen Sie beide Apps (iOS + watchOS) von Xcode auf verbundenen Geräten aus. Verwenden Sie die Debug-Konsole, um WCSessionDelegate-Nachrichten zu überwachen. Stellen Sie sicher, dass sich beide Geräte in Bluetooth-Reichweite (bis zu 10 Meter) befinden.

Zusammenfassung

  • WatchKit ist ein Apple-Framework zur Erstellung von Apps auf der Apple Watch unter Verwendung von WKInterface-UI-Komponenten und WKInterfaceController-Controllern.
  • WCSession ist der zentrale Mechanismus für die bidirektionale Kommunikation zwischen Watch und iPhone über Bluetooth/Wi-Fi mit Unterstützung für Nachrichten, Dateien und Kontext.
  • Complications sind Daten auf dem Apple Watch-Zifferblatt über CLKComplicationDataSource mit Unterstützung für 9 Anzeigefamilien.
  • Workout API ist eine Sammlung von Klassen für Fitness-Apps mit Hintergrundsammlung von Herzfrequenz-, GPS- und Beschleunigungsmesserdaten über HKWorkoutSession.
  • SwiftUI ist der von Apple empfohlene Ansatz für neue Projekte, aber WatchKit bleibt für Legacy-Apps und spezifische Funktionen relevant.
  • Kombination von WatchKit und SwiftUI in einer App ist über WKHostingController und UIViewRepresentable möglich.

Wir entwickeln eine mobile Applikation schlüsselfertig

IT Sectr entwickelt seit 2017 iOS- und Android-Apps für Startups und Unternehmen. Wir beraten Sie und schlagen die beste Lösung vor.

Projekt besprechen

Lesen Sie auch