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.

Poskytování rychlých interakcí uživatelů je nezbytné k vytváření poutavých aplikací a komplikací pro Apple Watch. Společnost Apple nově přidala podporu rozpoznávání gest, přístup k digitální koruně a nové techniky oznámení a navigace uživatelů. To společně s přidanou podporou sady SceneKit i SpriteKit umožňuje vývojářům snadno vytvářet bohatá a přehledná rozhraní, která jsou rychlá i responzivní.

Co jsou rychlé interakce

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

Ve watchOS chce uživatel obvykle zvednout zápěstí, rychle pracovat s aplikací (obvykle na pár sekund), pak zahoďte zápěstí a pokračujte v tom, co dělali.

Tady je 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ů

Aby bylo možné dosáhnout těchto cílů, musí být aplikace na Apple Watch:

  • Rychlý přehled – to znamená, že s rychlým přehledem by měl mít uživatel možnost získat potřebné informace.
  • Možnost reakce – to znamená, že uživatelé by měli být schopni provádět rychlá a dobře informovaná rozhodnutí.
  • Responzivní – To znamená, že uživatel by nikdy neměl čekat na získání informací, které potřebuje, nebo dosáhnout požadované akce.

Délka rychlých interakcí

Vzhledem k přehledné povaze aplikací Apple Watch apple naznačuje, že ideální délka rychlé interakce by měla být dvě sekundy nebo méně. V důsledku tohoto dvousekundového limitu bude vývojář muset strávit značnou dobu návrhem a implementací aplikace Apple Watch.

Nové funkce a rozhraní API watchOS 3

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

  • watchOS 3 poskytuje přístup k novým typům uživatelských vstupů, například:
    • Rozpoznávání gest
    • Otočení digitální korunky
  • WatchOS 3 poskytuje nové způsoby zobrazení a aktualizace informací, například:
    • Vylepšená navigace v tabulce
    • Podpora nové architektury oznámení uživatelů
    • Integrace SpriteKitu a SceneKitu

Díky implementaci těchto nových funkcí může vývojář zajistit, aby aplikace watchOS 3 byla přehledná, použitelná a responzivní.

Podpora rozpoznávání gest

Pokud vývojář implementoval rozpoznávání gest v iOSu, měli by být velmi obeznámeni s fungováním rozpoznávání gest ve watchOS 3. Pro aktualizaci jsou rozpoznávání gest objekty, které parsují události dotykového ovládání nízké úrovně na rozpoznatelná předdefinovaná gesta.

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

  • Typy diskrétních gest:
    • Gesto potáhnutí prstem (WKSwipeGestureRecognizer).
    • Gesto klepnutí (WKTapGestureRecognizer).
  • Typy průběžných gest:
    • Gesto posouvání (WKPanGestureRecognizer).
    • Gesto dlouhého stisknutí (WKLongPressGestureRecognizer).

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

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

Stavy diskrétních gest

Pro diskrétní gesta se akce volá, když je gesto rozpoznáno a stav (WKGestureRecognizerState) je přiřazen jako:

Stavy diskrétních gest

Všechna diskrétní gesta začínají ve Possible stavu a přecházejí do stavu nebo Recognized stavuFailed. Při použití diskrétních gest se vývojář obecně neřeší přímo se stavem. Místo toho spoléhají na volanou akci, když je gesto rozpoznáno pouze.

Stavy průběžných gest

Průběžná gesta se mírně liší od diskrétních gest, kde se akce volá několikrát při rozpoznávání gesta:

Stavy průběžných gest

Opět platí, že nepřetržitá gesta začínají ve Possible stavu, ale postupují v několika aktualizacích. Vývojář zde bude muset zvážit stav rozpoznávání a aktualizovat uživatelské rozhraní aplikace během Changed fáze, dokud se gesto nakonec Recognized nebo Canceled.

Tipy použití rozpoznávání gest

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

  • Přidejte rozpoznávání gest do seskupování prvků místo jednotlivých ovládacích prvků. Vzhledem k tomu, že Apple Watch má menší fyzickou velikost obrazovky, jsou prvky skupiny obvykle větší a jednodušší cíle, aby uživatel dosáhl. Rozpoznávání gest může také kolidovat s integrovanými gesty, která jsou již v nativních ovládacích prvcích uživatelského rozhraní.
  • Nastavte vztahy závislostí ve scénáři aplikace watch.
  • Některá gesta mají přednost před jinými typy gest, například:
    • Posouvání
    • Vynucení dotykového ovládání

Otočení digitální korunky

Díky implementaci podpory Digital Crown v aplikacích watchOS 3 může vývojář poskytovat uživatelům vyšší rychlost navigace a přesnost interakce.

Vzhledem k tomu, že watchOS 2 může aplikace Apple Watch používat WKInterfacePicker objekt pro přístup k digitální koruně tím, že poskytuje seznam WKPickerItems a styl výběru (List, Stacked nebo Image Sequence). watchOS pak uživateli povolil, aby pomocí digitální koruny vybral položku ze seznamu.

Při použití WKInterfacePickersady WatchKit zpracovává většinu práce pomocí:

  • Nakreslení seznamu a jednotlivých prvků rozhraní
  • Zpracování událostí digitální koruny.
  • Volání akce při výběru položky

Vývojář má teď nový watchOS 3 přímý přístup k událostem obměně digitální koruny, což jim umožňuje vytvářet vlastní prvky uživatelského rozhraní, které reagují na hodnoty rotace.

Přístup ke službě Digital Crown poskytuje následující prvky:

  • WKCrownSequencer - Poskytuje přístup k rotacím za sekundu.
  • WKCrownDelegate – Poskytuje přístup k událostem rotačního rozdílu.

Otočení za sekundu

Přístup k otočením za sekundu z digitální koruny je užitečný při práci s fyzikálními animacemi. Pokud chcete získat přístup k rotacím za sekundu, použijte CrownSequencer vlastnost WKInterfaceController rozšíření kukátek. Příklad:

var rotationsPerSecond = CrownSequencer.RotationsPerSecond;

Rotační rozdíly

K počítání počtu rotací použijte rotační rozdíly z digitální koruny. Použijte metodu CrownDidRotateWKCrownDelegate přepsání pro přístup k rotational Deltas. Pří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
  }
}

Aplikace zde udržuje akumulátor (AccumulatedRotations) k určení počtu rotací. Jedna úplná rotace digitální koruny je rovna kumulovanému rozdílu 1.0 a půl otočení by bylo 0.5.

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

Znaménko (+/-) rotačního rozdílu označuje směr, kterým uživatel otočí Digitální korunu:

Znaménko rotační delta označuje směr, kterým uživatel mění digitální korunu.

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

Digital Crown Focus

Stejně jako všechny ostatní prvky rozhraní má Digital Crown koncept Focus. Tento fokus je možné přesunout z digitální koruny na jiné prvky rozhraní na základě toho, jak uživatel komunikuje s hodinkami.

Například některý z následujících ovládacích prvků může ukrást fokus digitální koruny:

  • Picker
  • Posuvník
  • Posuvný kontroler

Záleží na vývojáři, aby určil, kdy musí být jeho vlastní prvek rozhraní fokusem digitální koruny. Apple navrhuje použití nových rozpoznávání gest k získání fokusu ve vlastním prvku uživatelského rozhraní.

Svislé stránkování

Standardním způsobem, jak uživatel prochází zobrazením tabulky v aplikaci watchOS, je posunout se k požadované části dat. Klepnutím na konkrétní řádek zobrazíte podrobné zobrazení, po dokončení zobrazení podrobností klepněte na tlačítko Zpět a zopakujte proces všech dalších informací, které mají zájem z tabulky:

Přechod mezi tabulkou a zobrazením podrobností

Vývojář může u ovládacích prvků Zobrazení tabulky povolit vertikální stránkování u svých ovládacích prvků Zobrazení tabulky. Když je tato funkce povolená, uživatel se může posunout, aby našel řádek zobrazení tabulky a klepnutím na řádek zobrazil jeho podrobnosti jako předtím. Teď ale můžou potáhnutím prstem nahoru vybrat další řádek v tabulce nebo dolů a vybrat předchozí řádek (nebo použít Digitální korunu), aniž byste se museli nejdřív vrátit do zobrazení tabulky:

Pohyb mezi tabulkou a zobrazením podrobností a potáhnutím prstem nahoru a dolů se můžete pohybovat mezi ostatními řádky.

Pokud chcete tento režim povolit, 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škrtněte políčko Svislé stránkování podrobností.

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

Vývojář může prostřednictvím kódu programu zapojit svislé stránkování na konkrétní řádek pomocí následujícího kódu v 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é načtení kontrolerů a v důsledku toho se některé metody životního cyklu kontroleru dají volat dříve, než se uživatelské rozhraní skutečně zobrazí.

Vylepšení oznámení

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

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

  1. Uživatel cítí haptický oznámení při přijetí nového oznámení.
  2. Zvednou zápěstí, aby viděli rozhraní Krátkého vzhledu oznámení.
  3. Pokud si i nadále drží zápěstí, watchOS se automaticky přepíná do rozhraní Oznámení dlouhého vzhledu.

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

  • Pro dobře definované a prezentované oznámení uživatel nic neudělá a jednoduše oznámení zavře.
  • Může také klepnout na oznámení a spustit aplikaci watchOS.
  • U oznámení, které podporuje vlastní akce, může uživatel vybrat jednu z vlastních akcí. Může to být následující:
    • Akce popředí – Tím se aplikace spustí, aby se akce prováděla.
    • Akce na pozadí – Byly vždy směrovány na i Telefon v watchOS 2, ale lze je směrovat na watchApp v watchOS 3.

Nové pro watchOS 3:

  • Oznámení používají podobné rozhraní API na všech platformách (iOS, watchOS, tvOS a macOS).
  • Na Apple Watch je možné naplánovat místní oznámení.
  • Oznámení na pozadí se bude směrovat na rozšíření aplikace, pokud byly naplánované na Apple Watch.

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

Oznámení z i Telefon uživatele se přesměruje na Apple Watch, když dojde k následujícímu:

  • Obrazovka i Telefon je vypnutá.
  • Apple Watch se nosí a je odemčený.

Ve watchOS 3 je možné na Apple Watch naplánovat místní oznámení a doručovat je jenom na hodinkách. Vývojář naplánuje odpovídající oznámení i Telefon pokud to aplikace vyžaduje.

Zahrnutím stejného identifikátoru oznámení ve verzích Apple Watch i i i Telefon oznámení zabrání zobrazení duplicitních oznámení na hodinkách. Verze oznámení Apple Watch bude mít přednost před verzí i Telefon.

Vzhledem k tomu, že watchOS 3 používá stejnou UINotification architekturu rozhraní API jako iOS 10, další podrobnosti najdete v naší dokumentaci k rozhraní pro oznámení uživatelů pro iOS 10.

Použití sady SpriteKit a SceneKit

Novinkou ve watchOS 3 je, že vývojář teď může používat objekty SpritKit i SceneKit v návrhu uživatelského rozhraní aplikace k prezentaci 2D i 3D grafiky.

Byly přidány dvě nové třídy rozhraní pro podporu této funkce:

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

Pokud chcete tyto objekty použít, jednoduše je přetáhněte na návrhovou plochu uvnitř scénáře aplikace kukátko v Tvůrci rozhraní Xcode a pomocí inspektoru atributů je nakonfigurujte.

Od tohoto okamžiku funguje práce s scénami SpriteKit nebo SceneKit stejně jako v aplikaci pro iOS. Aplikace watch bude prezentovat WKInterfaceSKScene voláním jedné z Present metod. Pro SceneKit jednoduše nastavte Scene vlastnost objektu WKInterfaceSCNScene .

Možné komplikace

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

Další integrované ciferníky teď můžou zahrnovat komplikace a stávající ciferníky, které už podporované komplikace můžou zahrnovat ještě více komplikací.

Novinkou je také možnost rychlého potáhnutí prstem doleva nebo doprava, aby přecházel přes všechny ciferníky, které si nainstalovali na Apple Watch. Pomocí nové galerie v doprovodné aplikaci Apple Watch i Telefon může uživatel přidávat a přizpůsobovat nové ciferníky a všechny komplikace, které můžou zahrnovat.

Vzhledem k těmto novým funkcím apple navrhuje, aby každá aplikace na Apple Watch měla obsahovat také alespoň jednu komplikaci, a proto všechny nativní aplikace Apple Watch teď mají komplikace.

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

  • Jsou velmi přehledné, protože jsou vždy přítomny na ciferníku.
  • WatchOS často aktualizuje komplikace. Každá aplikace, která zahrnuje komplikaci aktuálně zobrazeného ciferníku uživatele, se aktualizuje aspoň dvakrát za hodinu.
  • Každá aplikace s komplikací na aktuálně zobrazeném ciferníku uživatele se uchovává v paměti, takže se aplikace rychle spustí a zlepšuje rychlost odpovědí z aplikace.
  • Komplikace usnadňují uživateli spouštění konkrétních funkcí v aplikaci watchOS.

Přehledné oznámení

Oznámení na Apple Watch poskytují skvělý, 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í je možné uživateli rychle prezentovat cenné informace. V mnoha situacích může dobře navržené oznámení odebrat nutnost, aby uživatel aplikaci skutečně spustil.

Novinkou ve watchOS 3 jsou teď všechna oznámení:

  • SpriteKit
  • SceneKit
  • Vložené video

Vylepšené uživatelské rozhraní s využitím SpriteKitu a SceneKitu

Vývojář si obvykle může představit herní uživatelské rozhraní, když se zmíní sada SpriteKit a SceneKit. SpriteKit i SceneKit ale můžou být užitečné pro vytváření neherních uživatelských rozhraní, která zahrnují přizpůsobená rozložení, obsah a animace, které nejsou jinak možné ve WatchKitu samotné.

Například oznámení uživatele z aplikace pro sdílení fotek může použít SpriteKit k zajištění bohatého uživatelského prostředí tím, že uživatel, který obrázek publikoval, spolu se skutečným obrázkem a dalšími přizpůsobenými informacemi, které vylepšují uživatelské prostředí.

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

Jednoduchá navigace

WatchOS 3 představuje několik způsobů, jak vývojář může zjednodušit navigaci v aplikacích watchOS, jako jsou nové funkce vertikálního stránkování, podpora rozpoznávání gest a funkce obměny digitální korunky uvedené výše.

Digitální koruna je jedinečná pro Apple Watch a dá se použít mnoha různými způsoby, jak zjednodušit navigaci. Aplikace časovače může například pomocí digitální korunky projít dostupnými délkami časovače.

Vlastní gesta můžou uživatelům prezentovat nové a jedinečné způsoby interakce s aplikací kukátek a dají se také použít ke zjednodušení navigace v aplikacích.

Apple navrhuje hledat způsoby, jak kombinovat všechny nové funkce rychlé interakce přidané do watchOS 3, aby bylo možné prezentovat bohaté, snadné a rychlé použití rozhraní aplikací watchOS.

Dokončení rychlé interakce

Dobře navržené prostředí pro rychlou interakci uživateli poskytne jistotu, že po dokončení aktuální interakce vypustí zápěstí (a odpojí se s aplikací).

Kde se konkrétně stane problémem, když aplikace watch provádí jakýkoli typ síťového připojení nebo sdílí informace s doprovodnou aplikací i Telefon. To může často vést k čekacímu indikátoru, když probíhá transakce, což není žádoucí během rychlé interakce. Podívejte se na následující příklad:

Diagram aplikace watch, která provádí síťové připojení a sdílí informace s doprovodnou aplikací i Telefon

  1. Uživatel zvolí položku, kterou chcete koupit na hodinkách.
  2. Klepnou na tlačítko koupit.
  3. Aplikace spustí síťovou transakci a zobrazí indikátor načítání.
  4. O chvíli později se transakce dokončí a aplikace zobrazí shodu nákupu.
  5. Uživatel zahodí zápěstí a odpojí aplikaci.

Od okamžiku, kdy uživatel klepne na tlačítko koupit, dokud se transakce nedokončí, má své zápěstí zvednuto při pohledu na indikátor načítání. Aby bylo možné tuto situaci vyřešit, Apple navrhuje, aby vývojář uživateli místo zobrazení indikátoru načítání zobrazoval okamžitou zpětnou vazbu.

Při použití navrhovaného modelu Apple se znovu podívejte na stejnou rychlou interakci:

Diagram modelu navržený společností Apples

  1. Uživatel zvolí položku, kterou chcete koupit na hodinkách.
  2. Klepnou na tlačítko koupit.
  3. Aplikace spustí síťovou transakci a zobrazí zprávu s informací, že nákup se úspěšně spustil.
  4. Uživatel zahodí zápěstí a odpojí aplikaci.
  5. Po úspěšném dokončení transakce později aplikace zobrazí místní oznámení, které informuje uživatele o úspěšném nákupu.

Tentokrát, jakmile uživatel klepne na tlačítko koupit, zobrazí se zpráva s informací, že nákup začal, takže si může s jistotou vypustit zápěstí a ukončit rychlou interakci v tomto okamžiku. Později jsou informováni o úspěchu nebo selhání transakce v oznámení uživatele. Tímto způsobem uživatel komunikuje pouze s aplikací během "aktivních" fází procesu.

U aplikací, které provádějí sítě, můžou ke zpracování síťové komunikace pomocí úlohy stahování použít pozadí NSURLSession . To umožní, aby se aplikace zpracovála na pozadí a zpracovávala stažené informace. Pro aplikaci, která vyžaduje zpracování na pozadí, použijte kontrolní výraz úlohy na pozadí ke zpracování požadovaného zpracování.

Tipy návrhu rychlé interakce

Vzhledem k tomu, že požadovaná délka rychlé interakce je dvě sekundy nebo méně, vývojář by se měl zaměřit na návrh interakcí aplikace od samého začátku procesu návrhu. Najděte oblasti, kde se tyto interakce dají zjednodušit (pomocí výše uvedené techniky) a pomocí nových funkcí watchOS 3 můžete aplikaci rychle a rychle reagovat.

Apple navrhuje následující:

  • Zaměřte se na rychlé interakce tím, že předáte nejpoužívanější funkce aplikace.
  • Pomocí komplikací a oznámení uživatelů můžete zobrazovat běžné funkce a funkce.
  • Vytvářejte bohaté a přehledné uživatelské rozhraní pomocí SceneKitu a SpriteKitu.
  • Kdykoli je to možné, zjednodušte navigaci v aplikaci.
  • Nikdy neudržte uživatele čekat, povolte mu, aby co nejdříve vyhodili zápěstí a odpojili aplikaci.

Shrnutí

Tento článek se zabývá technikami rychlé interakce, které apple přidal do watchOS 3 a jak je implementovat v Xamarin.iOS pro Apple Watch.