Techniky rychlé interakce pro watchOS 3 v Xamarinu

Tento článek popisuje techniky rychlé interakce, které Apple přidal do watchOS 3, a jak je implementovat v Xamarin.iOS pro Apple Watch.

Zajištění rychlých interakcí uživatelů je nezbytné pro vytváření působivých Apple Watch aplikací a komplikací. Společnost Apple, která je novinkou v watchOS 3, přidala podporu pro rozpoznávání gest, přístup k Digital Crown a nové techniky pro oznámení a navigaci uživatelů. To spolu s přidanou podporou pro SceneKit i SpriteKit umožňuje vývojářům snadno vytvářet bohatá a přehledná rozhraní, která jsou rychlá a responzivní.

Co jsou rychlé interakce

Pro vývojáře, který se používá k vytváření aplikací pro iOS nebo macOS (kde se doba, kterou uživatel stráví interakcí s aplikací, měří v minutách nebo hodinách), může návrh úspěšné aplikace pro Apple Watch být výzvou a vyžaduje jiný přístup.

V watchOSu chce uživatel obvykle zvýšit svoji práci, rychle pracovat s aplikací (obvykle na pár sekund), pak svůj život vypustit a pokračovat v tom, co dělá.

Následuje několik příkladů typických rychlých interakcí na Apple Watch:

  • Spuštění časovače
  • Kontrola počasí
  • Označení položky ze seznamu úkolů

K dosažení těchto cílů musí být aplikace v Apple Watch následující:

  • Glanceable – to znamená, že uživatel by měl rychle získat potřebné informace.
  • Možnost jednat – To znamená, že uživatelé by měli být schopni provádět rychlá a informovaná rozhodnutí.
  • Responzivní – To znamená, že uživatel by nikdy neměl čekat na přijetí informací, které potřebuje, nebo k dosažení požadované akce.

Délka rychlých interakcí

Vzhledem k přehledné povaze Apple Watch aplikací Apple navrhuje, že ideální délka rychlé interakce by měla být dvě sekundy nebo méně. V důsledku tohoto dvousekunového limitu musí vývojář věnovat značnou část času navrhování a implementaci Apple Watch aplikace.

Nové funkce a rozhraní API watchOS 3

Apple do WatchKitu přidal několik nových funkcí a rozhraní API, které vývojářům pomáhají při přidávání rychlých interakcí do Apple Watch aplikací:

  • WatchOS 3 poskytuje přístup k novým druhům uživatelského vstupu, jako jsou:
    • Rozpoznávání gest
    • Digital Crown otočení
  • WatchOS 3 poskytuje nové způsoby zobrazení a aktualizace informací, například:
    • Vylepšená navigace v tabulce
    • Podpora nové architektury oznámení pro uživatele
    • Integrace SpriteKitu a SceneKitu

Implementací těchto nových funkcí může vývojář zajistit, aby jejich aplikace watchOS 3 byla Glanceable, Actionable a Responsive.

Podpora služby Gesture Recognizer

Pokud vývojář v iOSu implementoval Rozpoznávání gest, měl by být velmi obeznámený s tím, jak rozpoznávání gest funguje ve watchOS 3. Rozpoznávání gest jsou objekty, které parsování událostí dotykového ovládání nízké úrovně na rozpoznatelná a předdefinované gesta.

watchOS 3 bude podporovat čtyři následující služby Pro rozpoznávání gest:

  • Typy diskrétních gest:
    • Gesto potáhnutí prstem ( WKSwipeGestureRecognizer ).
    • Gesto klepnutí ( WKTapGestureRecognizer ).
  • Typy průběžných gest:
    • Gesto posouní ( WKPanGestureRecognizer ).
    • Gesto Long-Press ( WKLongPressGestureRecognizer ).

Pokud chcete implementovat jeden z nových nástrojů pro rozpoznávání gest, jednoduše ho přetáhněte do zobrazení v okně Interface Builder Xcode a nakonfigurujte jeho vlastnosti.

V kódu odpovězte na akci rozpoznávání, která zvládá gesto aktivované uživatelem. Opět se to provádí stejným způsobem jako v iOSu.

Diskrétní stavy gest

U diskrétních gest se akce volá, když je gesto rozpoznáno a Stav ( WKGestureRecognizerState ) je přiřazen jako:

Diskrétní stavy gest

Všechna diskrétní gesta začínají ve Possible stavu a přechádnou do Failed stavu nebo Recognized . Při použití diskrétních gest vývojář obvykle nehodí přímo stav. Místo toho spoléhají na akci, která se volá, když je gesto rozpoznáno pouze.

Průběžné stavy gest

Souvislá gesta se mírně liší od diskrétních gest, kdy se akce volá vícekrát při rozpoznání gesta:

Průběžné stavy gest

Znovu se spustí průběžná gesta ve Possible stavu , ale postupují přes několik aktualizací. V této fázi bude vývojář muset zvážit stav nástroje pro rozpoznávání a aktualizovat uživatelské rozhraní aplikace během fáze, dokud gesto nebude Changed nakonec Recognized nebo Canceled .

Gesture Recognizer Usage Tipy

Apple při práci s rozpoznáváním gest ve watchOS 3 navrhne následující:

  • Přidejte k prvkům skupiny rozpoznávání gest místo jednotlivých ovládacích prvků. Vzhledem k Apple Watch má menší fyzickou velikost obrazovky, mají prvky skupiny tendenci být větší a snadnější cíle, na které se uživatel může dostat. Rozpoznávání gest může také kolidovat s integrovanými gesty, která jsou už v nativních ovládacích prvcích uživatelského rozhraní.
  • Nastavte vztahy závislostí ve Scénáři aplikace pro sledování hodinek.
  • Některé gesta mají přednost před jinými typy gest, například:
    • Posouvání
    • Force Touch

Digital Crown otočení

Implementací podpory Digital Crown aplikací pro watchOS 3 může vývojář poskytovat uživatelům vyšší rychlost navigace a interakci s přesností.

Od watchOS 2 Apple Watch aplikace používat objekt pro přístup k Digital Crown poskytnutím seznamu a stylu WKInterfacePickerWKPickerItems výběru (List, Stacked nebo Image Sequence). WatchOS pak uživateli umožnilo používat Digital Crown k výběru položky ze seznamu.

Při použití WKInterfacePicker sady WatchKit většinu práce zpracuje:

  • Kreslení seznamu a jednotlivých prvků rozhraní
  • Zpracování Digital Crown událostí
  • Volání akce při výběru položky

S watchOS 3 teď vývojář má přímý přístup k událostem Digital Crown, které jim umožňují vytvářet vlastní prvky uživatelského rozhraní, které reagují na hodnoty rotace.

Digital Crown přístup je poskytován následujícími prvky:

  • WKCrownSequencer – Poskytuje přístup k střídání za sekundu.
  • WKCrownDelegate – Poskytuje přístup k rotačním rozdílových událostem.

Střídání za sekundu

Přístup k otočení za sekundu z Digital Crown je užitečný při práci s animacemi založenými na fyzice. Pokud chcete získat přístup ke střídání za sekundu, použijte CrownSequencer vlastnost WKInterfaceController rozšíření watch. Například:

var rotationsPerSecond = CrownSequencer.RotationsPerSecond;

Rotational Deltas

Pomocí rotačních rozdílů z Digital Crown můžete spočítat počet otočení. Pro přístup CrownDidRotate k rotationálním rozdílům použijte metodu WKCrownDelegate přepsání . Například:

using System;
using WatchKit;
using Foundation;

namespace MonkeyWatch.MonkeySeeExtension
{
  public class CrownDelegate : WKCrownDelegate
  {
    #region Computed Properties
    public double AccumulatedRotations { get; set;}
    #endregion

    #region Constructors
    public CrownDelegate ()
    {
    }
    #endregion

    #region Override Methods
    public override void CrownDidRotate (WKCrownSequencer crownSequencer, double rotationalDelta)
    {
      base.CrownDidRotate (crownSequencer, rotationalDelta);

      // Accumulate rotations
      AccumulatedRotations += rotationalDelta;
    }
    #endregion
  }
}

V této části aplikace udržuje zásobník ( ), který určuje počet AccumulatedRotations střídání. Jedna plná rotace Digital Crown se rovná kumulované rozdílové rovnce 1.0 a poloviční otočení by bylo 0.5 .

Apple ho nechali na vývojáři, aby zjistil, jak počty rotací odpovídají citlivosti změn v aktualizovaném prvku uživatelského rozhraní.

Znaménko ( ) rotační delta označuje směr, kterým uživatel mění +/- Digital Crown:

Znaménko rotační delta označuje směr, kterým uživatel mění Digital Crown

Pokud se uživatel posune nahoru, WatchKit vrátí kladné rozdílové hodnoty, a pokud se posune dolů, vrátí se záporné rozdíly bez ohledu na orientaci, ve které má uživatel hodinku.

Digital Crown fokusu

Stejně jako všechny ostatní prvky rozhraní má Digital Crown koncept Focus. Tento fokus se může přesunout z Digital Crown dalších prvků rozhraní podle toho, jak uživatel s hodinkou pracuje.

Například kterýkoli z následujících ovládacích prvků by mohl odcinout zaměření Digital Crown:

  • Výběr
  • Posuvník
  • Posouvání kontroleru

Je na vývojáři, aby určil, kdy musí být jeho vlastní prvek rozhraní fokusem Digital Crown. Apple navrhuje, aby se nový prvek Rozpoznávání gest zaměřil na vlastní prvek uživatelského rozhraní.

Vertikální stránkování

Standardní způsob, jakým uživatel naviguje zobrazení tabulky v aplikaci watchOS, je přejít na požadovanou část dat, klepnutím na konkrétní řádek zobrazíte podrobné zobrazení, po zobrazení podrobností klepněte na tlačítko zpět a opakujte postup pro všechny další informace, které vás zajímají z tabulky:

Přesun mezi tabulkou a detailním zobrazením

Novinka v watchOS 3 může vývojář Povolit svislé stránkování na jejich ovládací prvky zobrazení tabulky. Když je tato funkce povolená, může uživatel posouvat řádek zobrazení tabulky a klepnutím na řádek zobrazit jeho podrobnosti jako dřív. Teď ale můžou potáhnutím nahoru vybrat další řádek v tabulce nebo dolů a vybrat předchozí řádek (nebo použít Digital Crown), aniž by se museli nejdřív vrátit do zobrazení tabulky:

Přesun mezi tabulkou a detailním zobrazením a potáhnutím nahoru a dolů pro přechod mezi ostatními řádky

Chcete-li povolit tento režim, otevřete scénář aplikace watchOS v Xcode pro úpravy, vyberte zobrazení tabulky a zaškrtněte políčko svislé stránkování podrobností :

Zaškrtnutí políčka svislého stránkování podrobností

ujistěte se, že tabulka používá přechody k zobrazení podrobného zobrazení a uložení změn do scénáře a k synchronizaci Visual Studio pro Mac.

Vývojář může programově zapojit svisle stránkování do konkrétního řádku pomocí následujícího kódu pro zobrazení tabulky:

// Segue into Vertical Paging and select the first row
MenuTable.PerformSegue (0);

Při použití vertikálního stránkování musí vývojář vědět, že WatchKit automaticky zpracuje předběžné nakládku řadičů a v důsledku toho může být možné volat některé metody životního cyklu řadiče předtím, než je uživatelské rozhraní skutečně viditelné.

Vylepšení oznámení

Oznámení jsou primární forma rychlé interakce, kterou uživatel obvykle používá v watchOS a který je k dispozici od prvního Apple Watch a watchOS 1.

Typická rychlá interakce oznámení je následující:

  1. Uživatel si po přijetí nového oznámení přeformuje oznámení hmatové.
  2. Přinášejí své zápěstí, aby pro oznámení viděli krátký vzhled rozhraní.
  3. Pokud se i nadále chovají zápěstí, watchOS se automaticky převede do rozhraní pro oznamování dlouhého vzhledu.

Existuje několik způsobů, jak může uživatel na oznámení reagovat:

  • V případě dobře definovaného a prezentovaného oznámení uživatel neprovede žádné akce a oznámení bude jednoduše odpustit.
  • Můžou také klepnutím na oznámení spustit aplikaci watchOS.
  • U oznámení, které podporuje vlastní akce, může uživatel vybrat jednu z vlastních akcí. Můžou to být tyto:
    • Akce v popředí – tyto akce spustí aplikaci, aby bylo možné provést akci.
    • akce na pozadí – byly vždycky směrovány na iPhone v watchOS 2, ale je možné je směrovat na watchApp v watchOS 3.

Novinka pro watchOS 3:

  • Oznámení používá podobné rozhraní API napříč všemi platformami (iOS, watchOS, tvOS a macOS).
  • Místní oznámení se dá naplánovat na Apple Watch.
  • Pokud byly naplánovány na Apple Watch bude oznámení na pozadí směrováno do rozšíření aplikace.

Plánování a doručování oznámení

oznámení od iPhone uživatele bude předáno do Apple Watch, když dojde k následujícímu:

  • obrazovka iPhone je vypnutá.
  • Apple Watch je zpracováván a byl odemčen.

V watchOS 3 se můžou na Apple Watch plánovat místní oznámení, která se dodávají jenom na sledování. je vývojářem naplánovat odpovídající oznámení iPhone, pokud je aplikace vyžaduje.

zahrnutím stejného identifikátoru oznámení do Apple Watch i iPhone verzí oznámení zabráníte zobrazování duplicitních oznámení v tomto sledování. Apple Watch verze oznámení bude mít přednost před verzí iPhone.

Vzhledem k tomu, že watchOS 3 používá stejné rozhraní UINotification API API jako iOS 10, najdete další podrobnosti v dokumentaci k UINotification pro iOS 10.

Použití SpriteKit a SceneKit

Novinka v watchOS 3: vývojáři teď můžou v návrhu uživatelského rozhraní své aplikace používat i objekty SpritKit a SceneKit, aby mohli prezentovat 2D i 3D grafiku.

K podpoře této funkce byly přidány dvě nové třídy rozhraní:

  • WKInterfaceSKScene – Pro práci s SpriteKit 2D grafika.
  • WKInterfaceSCNScene – Pro práci s SceneKit 3D grafikou.

Chcete-li použít tyto objekty, jednoduše je přetáhněte na návrhovou plochu uvnitř scénáře aplikace kukátka v Xcode Interface Builder a použijte inspektor atributů pro jejich konfiguraci.

Od tohoto okamžiku funguje práce s SpriteKit nebo SceneKit scény stejně jako v aplikaci pro iOS. Aplikace kukátka zobrazí WKInterfaceSKScene volání jedné z Present metod. Pro SceneKit stačí nastavit Scene vlastnost WKInterfaceSCNScene objektu.

Nenapadnutelné komplikace

V watchOS 2 Společnost Apple představila komplikace pro aplikace třetích stran. V watchOS 3 rozšířila možnosti, které může vývojář zahrnout do WatchKit komplikace.

Další z vestavěných ploch sledování teď můžou zahrnovat komplikace a stávající sledované plošky, které už se v nich podporují, ale teď můžou být zahrnuté ještě více komplikací.

Novinkou je také možnost, aby uživatel mohl rychle potáhnout levou nebo pravou stranu a přejít na všechny plochy, které jsou na jejich Apple Watch nainstalovány. pomocí nové galerie v doprovodné iPhone aplikaci Apple Watch může uživatel přidat a přizpůsobit nové plošky kukátka a jakékoli komplikace, které mohou obsahovat.

Z důvodu těchto nových funkcí společnost Apple navrhuje, že každá aplikace na Apple Watch by měla taky zahrnovat aspoň jednu komplikaci a jako taková, že všechny nativní Apple Watch aplikace teď mají komplikaci.

Komplikace poskytují aplikaci následující funkce:

  • Jsou vysoce glanceabley, protože jsou vždy přítomny na ploše kukátka.
  • Komplikace se často aktualizují pomocí watchOS. Všechny aplikace, které obsahují komplikace na aktuálně zobrazeném vzhledu uživatele, se aktualizují nejméně dvakrát za hodinu.
  • Libovolná aplikace s komplikací na aktuálně zobrazeném objektu pro sledování je udržována v paměti, která aplikaci rychle spustí a zlepšuje rychlost reakcí od aplikace.
  • Komplikace usnadňují uživateli spouštění konkrétních funkcí v aplikaci watchOS.

Oznámení Glanceable

Oznámení o Apple Watch poskytují skvělý a přizpůsobitelný způsob, jak rychle informovat uživatele o událostech nebo nových informacích, jako jsou příchozí zprávy nebo dosažení cíle v aplikaci cvičení.

Pomocí oznámení můžete uživatelům rychle prezentovat užitečné informace. V mnoha situacích může dobře navržené oznámení odebrat nutnost, aby uživatel aplikaci skutečně spouštěl.

Novinka v watchOS 3: všechna oznámení teď podporují:

  • SpriteKit
  • SceneKit
  • Vložené video

Rozšířené uživatelské rozhraní s SpriteKit a SceneKit

Vývojáři se obvykle můžou představit jako uživatelské rozhraní hry, když jsou zmíněné SpriteKit a SceneKit. SpriteKit i SceneKit ale mohou být užitečné při vytváření neherních uživatelská rozhraní, které obsahují přizpůsobená rozložení, obsah a animace, které nejsou jinak možné pouze v WatchKit.

Například oznámení uživateli z aplikace pro sdílení fotografií může využít SpriteKit k zajištění uceleného uživatelského prostředí tím, že zahrne uživatele, který publikoval tento obrázek, spolu se skutečnou imagí a dalšími přizpůsobenými informacemi, které rozšiřují uživatelské prostředí.

SpriteKit i SceneKit lze navíc kombinovat se standardními prvky uživatelského rozhraní WatchKit v návrhu uživatelského rozhraní aplikace.

Jednoduchá navigace

watchOS 3 prezentuje několik způsobů, jak může vývojář zjednodušit navigaci v rámci svých aplikací watchOS, jako je například nové vertikální stránkování, Podpora nástroje pro rozpoznávání gest a Digital Crown funkce rotace .

Digital Crown je jedinečný pro Apple Watch a lze jej použít mnoha různými způsoby pro zjednodušení navigace. Například aplikace časovače může použít Digital Crown k procházení dostupných délek časovače.

Vlastní gesta mohou představovat nové a jedinečné způsoby interakce uživatele s aplikací kukátka a lze je také použít ke zjednodušení navigace aplikace.

Apple navrhuje hledat způsoby, jak kombinovat všechny nové funkce rychlých interakcí přidané v watchOS 3, abyste mohli prezentovat bohatě, snadno a rychle používat rozhraní watchOS aplikací.

Dokončí se rychlá interakce.

Dobře navržené prostředí s rychlými interakcemi zajistí, že uživatel bude po dokončení aktuální interakce zahodit jeho zápěstí (a odpojit aplikaci).

pokud se to konkrétně stalo problémem, je, že aplikace kukátka provádí libovolný typ síťového připojení nebo sdílí informace s doprovodnou iPhone aplikací. To může často vést k čekání na indikátor, zatímco probíhá transakce, což není během rychlé interakce žádoucí. Podívejte se na následující příklad:

Diagram aplikace kukátka, která provádí připojení k síti a sdílení informací s doprovodnou iPhone aplikací

  1. Uživatel zvolí položku, která se má na sledování koupit.
  2. Klepněte na tlačítko koupit.
  3. Aplikace spustí síťovou transakci a zobrazí indikátor načítání.
  4. Později se transakce dokončí a aplikace zobrazí shodu nákupu.
  5. Uživatel si ponechá zápěstí a odpojí se s aplikací.

Od okamžiku, kdy uživatel klepne na tlačítko koupit, dokud transakce není dokončená, podívá se na zápěstí, aby provedl indikátor načítání. Pro vyřešení této situace společnost Apple navrhuje, aby měl vývojář k dispozici okamžitou zpětnou vazbu uživateli, a nikoli zobrazení indikátoru načítání.

Pomocí navrženého modelu společnosti Apple se znovu podívejte na stejnou rychlou interakci:

Diagram navrhovaného modelu jablek

  1. Uživatel zvolí položku, která se má na sledování koupit.
  2. Klepněte na tlačítko koupit.
  3. Aplikace spustí síťovou transakci a zobrazí zprávu oznamující, že nákup byl úspěšně spuštěn.
  4. Uživatel si ponechá zápěstí a odpojí se s aplikací.
  5. Když se transakce úspěšně dokončí později, aplikace zobrazí místní oznámení, které uživatele informuje o úspěšném nákupu.

Tentokrát, jakmile uživatel klepne na tlačítko koupit, se zobrazí zpráva informující o tom, že nákup začal, aby mohl v tomto okamžiku odstranit jeho zápěstí a ukončit rychlou interakci. Později jsou informace o úspěchu nebo neúspěchu transakce v oznámení uživatele. Tímto způsobem uživatel pracuje pouze s aplikací během fází "aktivního" procesu.

Pro aplikace, které provádějí práci v síti, můžou pomocí pozadí NSURLSession zpracovávat síťovou komunikaci s úlohou stažení. Tím umožníte, aby se aplikace probuzený na pozadí, aby se stažené informace zpracovaly. Pro aplikaci, která vyžaduje zpracování na pozadí, použijte kontrolní výraz úlohy na pozadí pro zpracování požadovaného zpracování.

Tipy návrhu rychlých interakcí

Vzhledem k tomu, že požadovaná délka rychlé interakce je dvě sekundy nebo méně, měl by se vývojář soustředit na návrh interakcí aplikace od začátku procesu návrhu. Najděte oblasti, ve kterých je možné tyto interakce zjednodušit (pomocí výše uvedené metody), a využijte nové funkce watchOS 3, abyste aplikaci mohli rychle a reagovat.

Společnost Apple navrhuje následující:

  • Zaměřte se na rychlé interakce tím, že předáte nejvíce používané funkce aplikace.
  • Pomocí komplikací a uživatelských oznámení můžete naplochit běžné funkce a funkce.
  • Vytvářejte bohatě glanceable uživatelské rozhraní s SceneKit a SpriteKit.
  • Kdykoli je to možné, Zjednodušte navigaci v rámci aplikace.
  • Nikdy nenechte uživatele čekat, umožněte jim, aby vypustili své zápěstí a co nejdříve vypracovali s aplikací.

Souhrn

V tomto článku jsou uvedené techniky rychlých interakcí, které Apple přidal v watchOS 3 a jak je implementovat v Xamarin. iOS pro Apple Watch.