Sdílet prostřednictvím


Úvod do watchOSu

Poznámka:

Podívejte se na úvod do watchOS 3 , kde najdete přehled nejnovějších funkcí.

Informace o watchOS

Řešení aplikace watchOS má 3 projekty:

  • Rozšíření kukátek – projekt, který obsahuje kód aplikace watch.
  • Watch App – Obsahuje scénáře a prostředky uživatelského rozhraní.
  • Nadřazená aplikace pro iOS – tato aplikace je normální i Telefon aplikace. Aplikace a rozšíření hodinek jsou součástí aplikace i Telefon pro doručování do hodinek uživatele.

V aplikacích watchOS 1 běží kód v rozšíření na i Telefon – Apple Watch je v podstatě externím displejem. Aplikace watchOS 2 a 3 běží zcela na Apple Watch. Tento rozdíl je znázorněn v následujícím diagramu:

Rozdíl mezi watchOS 1 a watchOS 2 (a vyšším) je znázorněn v tomto diagramu.

Bez ohledu na to, na kterou verzi watchOS cílí, bude v oblasti řešení Visual Studio pro Mac kompletní řešení vypadat přibližně takto:

Panel řešení

Nadřazená aplikace v řešení watchOS je běžná aplikace pro iOS. Toto je jediný projekt v řešení, které je viditelné na telefonu. Mezi případy použití této aplikace patří kurzy, obrazovky pro správu a filtrování střední vrstvy, ukládání do mezipaměti atd. Je však možné, aby si uživatel nainstaloval a spustil aplikaci nebo rozšíření kukátku, aniž by někdy otevřel nadřazenou aplikaci, takže pokud potřebujete, aby nadřazená aplikace běžela pro jednorázovou inicializaci nebo správu, musíte aplikaci nebo rozšíření kukátek naprogramovat, aby o tom uživatel řekl.

I když nadřazená aplikace doručuje aplikaci a rozšíření kukátků, běží v různých sandboxech.

Ve watchOS 1 můžou sdílet data prostřednictvím sdílené skupiny aplikací nebo prostřednictvím statické funkce WKInterfaceController.OpenParentApplication, která aktivuje metodu UIApplicationDelegate.HandleWatchKitExtensionRequest v nadřazené aplikaci AppDelegate (viz práce s nadřazenou aplikací).

Ve watchOS 2 nebo novějším se architektura Watch Připojení ivity používá ke komunikaci s nadřazenou aplikací pomocí WCSession třídy.

Životní cyklus aplikace

V rozšíření kukátku se vytvoří podtřída WKInterfaceController třídy pro každou scénu scénáře.

Tyto WKInterfaceController třídy jsou podobné UIViewController objektům v programování v iOSu, ale nemají stejnou úroveň přístupu k zobrazení. Například nemůžete dynamicky přidávat ovládací prvky do uživatelského rozhraní ani je restrukturalizovat. Můžete ale skrýt a zobrazit ovládací prvky a s některými ovládacími prvky změnit jejich velikost, průhlednost a možnosti vzhledu.

Životní cyklus objektu WKInterfaceController zahrnuje následující volání:

  • Vzhůru : V této metodě byste měli provést většinu inicializace.
  • WillActivate : Volá se krátce před zobrazením aplikace Watch uživateli. Tato metoda slouží k provedení inicializace posledního okamžiku, spuštění animací atd.
  • V tuto chvíli se zobrazí aplikace Watch a rozšíření začne reagovat na uživatelský vstup a aktualizuje zobrazení aplikace Watch podle logiky vaší aplikace.
  • DidDeactivate After the Watch App has been dismissed by the user, this method is called. Po vrácení této metody nelze ovládací prvky uživatelského rozhraní upravit, dokud se příště WillActivate nevolá. Tato metoda bude volána také v případě, že připojení k i Telefon je přerušeno.
  • Po deaktivaci rozšíření je pro váš program nepřístupný. Nevyřízené asynchronní funkce nebudou volána. Rozšíření sady Watch Kit nemusí používat režimy zpracování na pozadí. Pokud je program znovu aktivován uživatelem, ale aplikace nebyla ukončena operačním systémem, první volána metoda bude WillActivate.

Přehled životního cyklu aplikace

Typy uživatelského rozhraní

Existují tři typy interakce, které může uživatel mít s vaší aplikací watch. Všechny jsou naprogramovány pomocí vlastních dílčích WKInterfaceControllertříd , takže dříve probíraná posloupnost životního cyklu se používá všeobecně (oznámení jsou naprogramována podtřídami , které jsou samy o sobě podtřídou WKUserNotificationControllerWKInterfaceController):

Normální interakce

Většina interakce aplikace/rozšíření hodinek bude s dílčími třídamiWKInterfaceController, které píšete, aby odpovídaly scénám v rozhraní.storyboard vaší aplikace. Toto je podrobně popsáno v článcích Instalace a Začínáme . Následující obrázek ukazuje část scénáře ukázky. Pro každou scénu zde je odpovídající vlastní WKInterfaceController (LabelDetailController, ButtonDetailController, SwitchDetailController, atd.) v projektu rozšíření.

Příklady normální interakce

Notifications

Oznámení jsou hlavním případem použití pro Apple Watch. Podporují se místní i vzdálená oznámení. Interakce s oznámeními probíhá ve dvou fázích s názvem Short-and Long-Look.

Krátké vzhledy se zobrazí krátce a zobrazí ikonu aplikace kukátko, její název a název (jak je uvedeno WKInterfaceController.SetTitlepomocí ).

Dlouhý vzhled kombinuje systémovou oblast sash a tlačítko Zavřít s vlastním obsahem založeným na storyboardu.

WKUserNotificationInterfaceControllerWKInterfaceController rozšiřuje o metody DidReceiveLocalNotification a DidReceiveRemoteNotification. Tyto metody přepište, aby reagovaly na události oznámení.

Další informace o návrhu uživatelského rozhraní oznámení najdete v pokynech pro lidské rozhraní Apple Watch.

Ukázková oznámení

Velikosti obrazovky

Apple Watch má dvě velikosti tváří: 38mm a 42mm, oba s poměrem displeje 5:4 a s displejem Retina. Jejich použitelné velikosti jsou:

  • 38 mm: 136 x 170 logických pixelů (272 x 340 fyzických pixelů)
  • 42mm: 156 x 195 logických pixelů (312 x 390 fyzických pixelů).

Slouží WKInterfaceDevice.ScreenBounds k určení, na kterém displeji běží vaše aplikace Watch.

Obecně je jednodušší vyvíjet návrh textu a rozložení s více omezeným zobrazením 38mm a pak vertikálně navýšit kapacitu. Pokud začnete s větším prostředím, vertikální snížení kapacity může vést k ošklivým překrytí nebo zkrácení textu.

Přečtěte si další informace o práci s velikostmi obrazovky.

Omezení watchOS

Při vývoji aplikací watchOS je potřeba mít na paměti některá omezení:

  • Zařízení Apple Watch mají omezené úložiště – mějte na paměti dostupné místo před stažením velkých souborů (např. zvukových nebo filmových souborů).

  • Mnoho ovládacích prvků watchOS má analogy v UIKitu, ale jsou různé třídy (WKInterfaceButtonmísto UIButton, WKInterfaceSwitch pro UISwitchatd.) a mají omezenou sadu metod ve srovnání s jejich ekvivalenty UIKit. WatchOS má navíc některé ovládací prvky, například WKInterfaceDate (pro zobrazení data a času), které uiKit nemá.

    • Oznámení nemůžete směrovat jenom na hodinky Watch nebo jenom na i Telefon (jaký druh kontroly uživatel přes směrování neoznámil Apple).

Některá další známá omezení / nejčastější dotazy:

  • Apple nepovolí vlastní ciferníky třetích stran.

  • Rozhraní API, která umožňují ovládání iTunes na připojeném telefonu, jsou soukromá.

Další čtení

Podívejte se na dokumentaci od Společnosti Apple: