Einführung in watchOS

Hinweis

Sehen Sie sich die Einführung in watchOS 3 an, um einen Überblick über die neuesten Features zu finden.

Informationen zu watchOS

Eine WatchOS-App-Lösung verfügt über drei Projekte:

  • Watch Extension – Ein Projekt, das den Code für die Überwachungs-App enthält.
  • Watch App – Enthält das Storyboard und ressourcen der Benutzeroberfläche.
  • Übergeordnete iOS-App – Diese App ist eine normale i Telefon-App. Die Watch-App und -Erweiterung werden in der i Telefon-App gebündelt, um sie an die Uhr des Benutzers zu liefern.

In watchOS 1-Apps wird der Code in der Erweiterung auf dem i Telefon ausgeführt – die Apple Watch ist effektiv ein externes Display. WatchOS 2- und 3-Apps werden vollständig auf der Apple Watch ausgeführt. Dieser Unterschied wird im folgenden Diagramm gezeigt:

The difference between watchOS 1 and watchOS 2 (and greater) is shown in this diagram

Unabhängig davon, auf welche Version von watchOS ausgerichtet ist, sieht in Visual Studio für Mac Lösungskreuz eine vollständige Lösung ungefähr wie folgt aus:

The Solution Pad

Die übergeordnete App in einer WatchOS-Lösung ist eine normale iOS-App. Dies ist das einzige Projekt in der Projektmappe, das auf dem Telefon sichtbar ist. Anwendungsfälle für diese App umfassen Lernprogramme, administrative Bildschirme und Filterung auf mittlerer Ebene, Zwischenspeicherung usw. Es ist jedoch möglich, dass benutzer die Watch-App/Erweiterung installieren und ausführen können, ohne die übergeordnete App jemals geöffnet zu haben. Wenn Sie also die übergeordnete App für die einmalige Initialisierung oder Verwaltung ausführen müssen, müssen Sie Ihre Überwachungs-App/Erweiterung programmieren, um dem Benutzer mitzuteilen, dass.

Obwohl die übergeordnete App die Watch-App und die Erweiterung bereitstellt, werden sie in unterschiedlichen Sandboxes ausgeführt.

Auf WatchOS 1 können sie Daten über eine freigegebene App-Gruppe oder über die statische Funktion WKInterfaceController.OpenParentApplicationfreigeben, wodurch die Methode in den UIApplicationDelegate.HandleWatchKitExtensionRequest übergeordneten Apps AppDelegate ausgelöst wird (siehe Arbeiten mit der übergeordneten App).

Auf watchOS 2 oder höher wird das Watch Verbinden ivity Framework für die Kommunikation mit der übergeordneten App mithilfe der WCSession Klasse verwendet.

Anwendungslebenszyklus

In der Überwachungserweiterung wird für jede Storyboardszene eine Unterklasse der WKInterfaceController Klasse erstellt.

Diese WKInterfaceController Klassen sind analog zu den UIViewController Objekten in der iOS-Programmierung, haben jedoch nicht dieselbe Zugriffsebene auf die Ansicht. Beispielsweise können Sie ihrer Benutzeroberfläche keine Steuerelemente dynamisch hinzufügen oder neu strukturieren. Sie können steuerelemente jedoch ausblenden und einblenden und mit einigen Steuerelementen deren Größe, Transparenz und Darstellungsoptionen ändern.

Der Lebenszyklus eines WKInterfaceController Objekts umfasst die folgenden Aufrufe:

  • Wach: Sie sollten die meisten Ihrer Initialisierung in dieser Methode ausführen.
  • WillActivate : Wird kurz aufgerufen, bevor die Watch-App dem Benutzer angezeigt wird. Verwenden Sie diese Methode, um die Initialisierung des letzten Moments durchzuführen, Animationen zu starten usw.
  • An diesem Punkt wird die Watch-App angezeigt, und die Erweiterung reagiert auf Benutzereingaben und aktualisiert die Anzeige der Watch-App gemäß Ihrer Anwendungslogik.
  • DidDeactivate After the Watch App has been dismissed by the user, this method is called. Nachdem diese Methode zurückgegeben wurde, können Benutzeroberflächensteuerelemente erst geändert werden, wenn das nächste Mal WillActivate aufgerufen wird. Diese Methode wird auch aufgerufen, wenn die Verbindung mit dem i Telefon unterbrochen ist.
  • Nachdem die Erweiterung deaktiviert wurde, kann auf Ihr Programm nicht mehr zugegriffen werden. Ausstehende asynchrone Funktionen werden nicht aufgerufen. Watch Kit-Erweiterungen verwenden möglicherweise keine Hintergrundverarbeitungsmodi. Wenn das Programm vom Benutzer reaktiviert wird, die App jedoch nicht vom Betriebssystem beendet wurde, lautet WillActivatedie erste aufgerufene Methode.

Application Lifecycle overview

Typen der Benutzeroberfläche

Es gibt drei Arten von Interaktionen, die der Benutzer mit Ihrer Watch-App haben kann. Alle werden mit benutzerdefinierten Unterklassen programmiert WKInterfaceController, sodass die zuvor diskutierte Lebenszyklussequenz universell angewendet wird (Benachrichtigungen werden mit Unterklassen programmiert, die WKUserNotificationControllerselbst eine Unterklasse von WKInterfaceController):

Normale Interaktion

Der Großteil der Überwachungs-App-/Erweiterungsinteraktion besteht aus UnterklassenWKInterfaceController, die Sie schreiben, um Szenen im Interface.storyboard Ihrer Watch-App zu entsprechen. Dies wird in den Artikeln "Installation " und "Erste Schritte " ausführlich behandelt. Die folgende Abbildung zeigt einen Teil des Storyboards des Watch Kit-Katalogbeispiels . Für jede hier gezeigte Szene gibt es ein entsprechendes benutzerdefiniertes WKInterfaceController (LabelDetailController, ButtonDetailController, SwitchDetailControllerusw.) im Erweiterungsprojekt.

Normal Interaction examples

Benachrichtigungen

Benachrichtigungen sind ein wichtiger Anwendungsfall für die Apple Watch. Sowohl lokale als auch Remotebenachrichtigungen werden unterstützt. Die Interaktion mit Benachrichtigungen erfolgt in zwei Phasen, der sogenannten Short- und Long-Look.

Kurze Looks werden kurz angezeigt und zeigen das Symbol der Watch-App, dessen Name und den Titel an (wie angegeben).WKInterfaceController.SetTitle

Das lange Aussehen kombiniert einen systemgesteuerten Sashbereich und eine Schaltfläche "Schließen" mit Ihren benutzerdefinierten Storyboard-basierten Inhalten.

WKUserNotificationInterfaceController erweitert WKInterfaceController mit den Methoden DidReceiveLocalNotification und DidReceiveRemoteNotification. Überschreiben Sie diese Methoden, um auf Benachrichtigungsereignisse zu reagieren.

Weitere Informationen zum Design der Benachrichtigungsbenutzeroberfläche finden Sie in den Apple Watch Human Interface Richtlinien

Sample notifications

Bildschirmgrößen

Die Apple Watch verfügt über zwei Gesichtsgrößen: 38mm und 42mm, sowohl mit einem 5:4-Anzeigeverhältnis als auch mit einem Netzhaut-Display. Ihre verwendbaren Größen sind:

  • 38mm: 136 x 170 logische Pixel (272 x 340 physische Pixel)
  • 42mm: 156 x 195 logische Pixel (312 x 390 physische Pixel).

Hiermit WKInterfaceDevice.ScreenBounds bestimmen Sie, welche Anzeige Ihre Watch-App ausgeführt wird.

Im Allgemeinen ist es einfacher, Ihr Text- und Layoutdesign mit der eingeschränkteren 38mm-Anzeige zu entwickeln und dann nach oben zu skalieren. Wenn Sie mit der größeren Umgebung beginnen, kann die Skalierung nach unten zu hässlichen Überschneidungen oder Textkürzungen führen.

Weitere Informationen zum Arbeiten mit Bildschirmgrößen.

Einschränkungen von watchOS

Es gibt einige Einschränkungen von WatchOS, die beim Entwickeln von WatchOS-Apps beachtet werden müssen:

  • Apple Watch-Geräte verfügen über begrenzten Speicherplatz – achten Sie auf den verfügbaren Speicherplatz, bevor Sie große Dateien herunterladen (z. B. Audio- oder Filmdateien).

  • Viele WatchOS-Steuerelemente verfügen über Analoga in UIKit, sind jedoch unterschiedliche Klassen (WKInterfaceButton anstelle UIButtonvon , WKInterfaceSwitch for UISwitch, usw.) und verfügen über einen begrenzten Satz von Methoden im Vergleich zu ihren UIKit-Entsprechungen. Darüber hinaus verfügt watchOS über einige Steuerelemente, z WKInterfaceDate . B. (zum Anzeigen eines Datums und einer Uhrzeit), über die UIKit nicht verfügt.

    • Sie können keine Benachrichtigungen nur an die Watch weiterleiten, oder nur das i Telefon (welche Art von Kontrolle der Benutzer über routing verfügt, wurde von Apple nicht angekündigt).

Einige andere bekannte Einschränkungen / häufig gestellte Fragen:

  • Apple lässt keine benutzerdefinierten Watch-Gesichter von Drittanbietern zu.

  • Die APIs, mit denen die Watch iTunes auf dem verbundenen Telefon steuern kann, sind privat.

Weitere nützliche Informationen

Schauen Sie sich die Dokumentation von Apple an: