Tecniche di interazione rapida per watchOS 3 in Xamarin
Questo articolo illustra le tecniche di interazione rapida aggiunte da Apple in watchOS 3 e come implementarle in Xamarin.iOS per Apple Watch.
Fornire interazioni rapide da parte dell'utente è essenziale per creare app apple Watch accattivanti e complicazioni. Novità di watchOS 3, Apple ha aggiunto il supporto per i riconoscitori di movimento, l'accesso alle tecniche di notifica digitale e le nuove tecniche di notifica e navigazione degli utenti. Questo, insieme al supporto aggiunto sia per SceneKit che per SpriteKit, consente allo sviluppatore di creare facilmente interfacce avanzate e accattivanti che siano sia rapide che reattive.
Che cosa sono le interazioni rapide
Per uno sviluppatore usato per creare applicazioni per iOS o macOS (in cui la quantità di tempo trascorso da un utente che interagisce con l'app viene misurata in minuti o ore), la progettazione di un'app di successo per Apple Watch può essere una sfida e richiede un approccio diverso.
In watchOS, l'utente in genere vuole sollevare il polso, interagire rapidamente con un'app (di solito per un paio di secondi), quindi rilasciare il polso e continuare tutto quello che stava facendo.
Di seguito sono riportati alcuni esempi di interazioni rapide tipiche in Apple Watch:
- Avvio di un timer.
- Controllare le condizioni meteorologiche.
- Contrassegno di un elemento da un elenco di todo.
Per raggiungere questi obiettivi, un'app nell'Apple Watch deve essere:
- Visualizzabile : ciò significa che con una rapida occhiata l'utente dovrebbe essere in grado di ottenere le informazioni necessarie.
- Praticabile : ciò significa che gli utenti devono essere in grado di prendere decisioni rapide e ben informate.
- Reattivo : ciò significa che l'utente non deve mai aspettare di ricevere le informazioni necessarie o per ottenere l'azione desiderata.
Lunghezza interazioni rapide
A causa della natura immediata delle app Apple Watch, Apple suggerisce che la lunghezza ideale di un'interazione rapida deve essere di due secondi o meno. In seguito a questo limite di due secondi, lo sviluppatore dovrà dedicare una notevole quantità di tempo sia alla progettazione che all'implementazione di un'app Apple Watch.
Nuove funzionalità e API watchOS 3
Apple ha aggiunto diverse nuove funzionalità e API a WatchKit per aiutare lo sviluppatore ad aggiungere interazioni rapide alle app Apple Watch:
- watchOS 3 fornisce l'accesso a nuovi tipi di input utente, ad esempio:
- Riconoscitori di movimento
- Rotazione della corona digitale
- watchOS 3 offre nuovi modi per visualizzare e aggiornare le informazioni, ad esempio:
- Spostamento avanzato tra tabelle
- Nuovo supporto per il framework di notifica utente
- Integrazione di SpriteKit e SceneKit
Implementando queste nuove funzionalità, lo sviluppatore può garantire che l'app watchOS 3 sia visualizzabile, praticabile e reattiva.
Supporto riconoscimento movimenti
Se lo sviluppatore ha implementato i sistemi di riconoscimento dei movimenti in iOS, dovrebbe avere familiarità con il funzionamento dei riconoscimento dei movimenti in watchOS 3. Per aggiornare, i riconoscimento movimenti sono oggetti che analizzano gli eventi di tocco di basso livello in gesti riconoscibili e predefiniti.
watchOS 3 supporterà i quattro sistemi di riconoscimento movimenti seguenti:
- Tipi di movimenti discreti:
- Movimento di scorrimento rapido (
WKSwipeGestureRecognizer
). - Movimento tocco (
WKTapGestureRecognizer
).
- Movimento di scorrimento rapido (
- Tipi di movimenti continui:
- Movimento panoramica (
WKPanGestureRecognizer
). - Movimento di pressione prolungata (
WKLongPressGestureRecognizer
).
- Movimento panoramica (
Per implementare uno dei nuovi sistemi di riconoscimento movimenti, è sufficiente trascinarlo in una visualizzazione in Interface Builder di Xcode e configurarne le proprietà.
Nel codice rispondere all'azione del riconoscitore per gestire il movimento attivato dall'utente. Anche in questo caso, questa operazione viene eseguita nello stesso modo in cui verrebbe gestita in iOS.
Stati di movimento discreti
Per i movimenti discreti, l'azione viene chiamata quando il movimento viene riconosciuto e viene assegnato uno stato (WKGestureRecognizerState
):
Tutti i movimenti discreti iniziano nello Possible
stato e passano allo Failed
stato o Recognized
. Quando si usano movimenti discreti, lo sviluppatore in genere non gestisce direttamente lo stato. Si basano invece sull'azione chiamata quando il movimento viene riconosciuto solo.
Stati movimenti continui
I movimenti continui sono leggermente diversi dai movimenti discreti, in cui l'azione viene chiamata più volte perché il movimento viene riconosciuto:
Anche in questo caso, i movimenti continui iniziano nello Possible
stato, ma progrediscono su più aggiornamenti. In questo caso lo sviluppatore dovrà prendere in considerazione lo stato del riconoscitore e aggiornare l'interfaccia utente dell'app durante la Changed
fase fino a quando il movimento non sarà finalmente Recognized
o Canceled
.
Suggerimenti di utilizzo di Riconoscimento movimenti
Apple suggerisce quanto segue quando si lavora con i riconoscimento dei movimenti in watchOS 3:
- Aggiungere i riconoscitori movimenti a raggruppare gli elementi anziché i singoli controlli. Poiché Apple Watch ha dimensioni dello schermo fisiche più piccole, Gli elementi del gruppo tendono a essere obiettivi più grandi e più facili da raggiungere per l'utente. Inoltre, i riconoscitori di movimento possono entrare in conflitto con i movimenti incorporati già nei controlli dell'interfaccia utente nativi.
- Impostare le relazioni di dipendenza nello Storyboard dell'app watch.
- Alcuni movimenti hanno la precedenza su altri tipi di movimento, ad esempio:
- Scorrimento in corso
- Forza tocco
Rotazione della corona digitale
Implementando il supporto di Digital Crown nelle app watchOS 3, uno sviluppatore può fornire un maggior numero di interazioni di navigazione e precisione per gli utenti.
Dal momento che watchOS 2, l'app Apple Watch potrebbe usare l'oggetto WKInterfacePicker
per accedere a Digital Crown fornendo un elenco di WKPickerItems
e uno stile di selezione (elenco, stack o sequenza di immagini). watchOS ha quindi consentito all'utente di usare Digital Crown per selezionare un elemento dall'elenco.
Quando si usa , WKInterfacePicker
WatchKit gestisce la maggior parte del lavoro tramite:
- Disegno dell'elenco e dei singoli elementi dell'interfaccia.
- Elaborazione degli eventi Digital Crown.
- Chiamata di un'azione quando viene selezionato un elemento.
Novità di watchOS 3, lo sviluppatore ha ora accesso diretto agli eventi di rotazione Digital Crown che consentono di creare elementi dell'interfaccia utente personalizzati che rispondono ai valori di rotazione.
L'accesso a Digital Crown viene fornito dagli elementi seguenti:
WKCrownSequencer
- Consente l'accesso alle rotazioni al secondo.WKCrownDelegate
- Fornisce l'accesso agli eventi delta rotazionali.
Rotazioni al secondo
L'accesso alle rotazioni al secondo da Digital Crown è utile quando si lavora con animazioni basate sulla fisica. Per accedere alle rotazioni al secondo, utilizzare la CrownSequencer
proprietà dell'estensione WKInterfaceController
espressione di controllo. Ad esempio:
var rotationsPerSecond = CrownSequencer.RotationsPerSecond;
Delta rotazionali
Usare i delta rotazionali della Corona digitale per contare il numero di rotazioni. Utilizzare il CrownDidRotate
metodo di override di WKCrownDelegate
per accedere ai delta rotazionali. Ad esempio:
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
}
}
Qui l'app mantiene un enumeratore (AccumulatedRotations
) per determinare il numero di rotazioni. Una rotazione completa della Corona digitale è uguale a un delta accumulato di 1.0
e una mezza rotazione sarebbe 0.5
.
Apple ha lasciato lo sviluppatore per determinare il modo in cui i conteggi di rotazione corrispondono alla sensibilità delle modifiche apportate all'elemento dell'interfaccia utente da aggiornare.
Il segno (+/-
) del delta rotazionale indica la direzione in cui l'utente sta girando la corona digitale:
Se l'utente scorre verso l'alto, WatchKit restituirà delta positivi e, se si scorre verso il basso, verranno restituiti delta negativi, indipendentemente dall'orientamento in cui l'utente indossa l'orologio.
Digital Crown Focus
Proprio come qualsiasi altro elemento di interfaccia, Digital Crown ha il concetto di Focus. Questo focus può essere spostato da Digital Crown ad altri elementi di interfaccia in base al modo in cui l'utente interagisce con l'orologio.
Ad esempio, uno dei controlli seguenti potrebbe rubare lo stato attivo della corona digitale:
- Picker
- Dispositivo di scorrimento
- Controller di scorrimento
Spetta allo sviluppatore determinare quando l'elemento dell'interfaccia personalizzata deve essere l'obiettivo della corona digitale. Apple suggerisce di usare i nuovi riconoscimento movimenti per ottenere lo stato attivo nell'elemento dell'interfaccia utente personalizzato.
Paging verticale
Il modo standard in cui un utente sposta una visualizzazione tabella in un'app watchOS consiste nello scorrere fino alla parte desiderata di dati, toccare una riga specifica per visualizzare la visualizzazione dettagliata, toccare il pulsante Indietro al termine della visualizzazione dei dettagli e ripetere il processo per tutte le altre informazioni a cui sono interessati dall'interno della tabella:
Novità di watchOS 3, lo sviluppatore può abilitare il paging verticale nei controlli Visualizzazione tabella. Con questa funzionalità abilitata, l'utente può scorrere per trovare una riga di visualizzazione tabella e toccare la riga per visualizzarne i dettagli come prima. Tuttavia, ora possono scorrere rapidamente verso l'alto per selezionare la riga successiva nella tabella o verso il basso per selezionare la riga precedente (o usare la corona digitale), tutto senza dover tornare prima alla visualizzazione tabella:
Per abilitare questa modalità, aprire lo storyboard dell'app watchOS in Xcode per la modifica, selezionare la visualizzazione tabella e selezionare la casella di controllo Paging dettagli verticale :
Assicurarsi che la tabella usi Segues per visualizzare la visualizzazione dettagliata e salvare le modifiche apportate allo Storyboard e tornare a Visual Studio per Mac da sincronizzare.
Lo sviluppatore può coinvolgere a livello di codice il paging verticale in una riga specifica usando il codice seguente in una vista tabella:
// Segue into Vertical Paging and select the first row
MenuTable.PerformSegue (0);
Quando si usa il paging verticale, lo sviluppatore deve tenere presente che WatchKit gestirà automaticamente il precaricamento dei controller e, di conseguenza, alcuni metodi del ciclo di vita del controller possono essere chiamati prima che l'interfaccia utente sia effettivamente visibile.
Miglioramenti delle notifiche
La notifica è la forma principale di interazione rapida che un utente in genere sperimenta su watchOS e sono stati disponibili dal primo Apple Watch e watchOS 1.
Un'interazione rapida di notifica tipica è la seguente:
- L'utente sente la notifica aptico quando viene ricevuta una nuova notifica.
- Alzano il polso per vedere l'interfaccia Short Look per la notifica.
- Se continuano a mantenere il polso alzato, watchOS passa automaticamente all'interfaccia Di notifica aspetto lungo.
Esistono diversi modi in cui un utente può rispondere alla notifica:
- Per una notifica ben definita e presentata, l'utente non eseguirà alcuna operazione e semplicemente ignora la notifica.
- Potrebbero anche toccare la notifica per avviare l'app watchOS.
- Per una notifica che supporta azioni personalizzate, l'utente potrebbe selezionare una delle azioni personalizzate. Questi possono essere i seguenti:
- Azioni in primo piano: avviano l'app per eseguire l'azione.
- Azioni in background: sono state sempre indirizzate all'i Telefono in watchOS 2, ma possono essere indirizzate all'app watchOS 3.
Novità per watchOS 3:
- La notifica usa un'API simile in tutte le piattaforme (iOS, watchOS, tvOS e macOS).
- La notifica locale può essere pianificata in Apple Watch.
- La notifica in background verrà instradata all'estensione dell'app se sono state pianificate in Apple Watch.
Pianificazione e recapito delle notifiche
La notifica dell'i Telefono dell'utente verrà inoltrata all'Apple Watch quando si verifica quanto segue:
- Lo schermo di i Telefono è spento.
- Apple Watch viene indossato ed è stato sbloccato.
In watchOS 3, le notifiche locali possono essere pianificate in Apple Watch e vengono recapitate solo sull'orologio. Spetta allo sviluppatore pianificare una notifica i Telefono corrispondente se è richiesta dall'app.
Includendo lo stesso identificatore di notifica in Apple Watch e i Telefono versioni delle notifiche, impedisce la visualizzazione delle notifiche duplicate nell'orologio. La versione apple Watch della notifica avrà la precedenza sulla versione i Telefono.
Poiché watchOS 3 usa lo stesso UINotification
framework API di iOS 10, vedere la documentazione di iOS 10 User Notification Framework per altri dettagli.
Uso di SpriteKit e SceneKit
Novità di watchOS 3, lo sviluppatore può ora usare gli oggetti SpritKit e SceneKit nella progettazione dell'interfaccia utente dell'app per presentare grafica 2D e 3D.
Sono state aggiunte due nuove classi di interfaccia per supportare questa funzionalità:
WKInterfaceSKScene
- Per l'uso della grafica 2D di SpriteKit.WKInterfaceSCNScene
- Per l'uso della grafica 3D di SceneKit.
Per usare questi oggetti, è sufficiente trascinarli nell'area di progettazione all'interno dello Storyboard dell'app watch in Interface Builder di Xcode e usare Attributes Inspector per configurarli.
A questo punto, l'uso delle scene di SpriteKit o SceneKit funziona allo stesso modo in cui funziona all'interno di un'app iOS. L'app watch presenterà un WKInterfaceSKScene
oggetto chiamando uno dei Present
metodi . Per SceneKit, è sufficiente impostare la Scene
proprietà dell'oggetto WKInterfaceSCNScene
.
Complicazioni utilizzabili
In watchOS 2 Apple ha introdotto complicazioni per le app di terze parti. In watchOS 3 Apple ha ampliato le capacità che uno sviluppatore può includere in una complicazione WatchKit.
Inoltre, più dei visi orologio incorporati possono ora includere complicazioni e visi di orologio esistenti che già supportati Complicazioni possono ora includere ancora più complicazioni.
Inoltre, una novità è la possibilità per un utente di scorrere rapidamente verso sinistra o destra per passare attraverso tutti i visi dell'orologio installati sul proprio Apple Watch. Usando la nuova raccolta nell'app i Telefono complementare di Apple Watch, l'utente può aggiungere e personalizzare nuovi volti dell'orologio e una delle complicazioni che possono includere.
A causa di queste nuove funzionalità, Apple suggerisce che ogni app in Apple Watch dovrebbe includere almeno una complicazione e, di conseguenza, tutte le app Native Apple Watch ora hanno complicazioni.
Le complicazioni forniscono le funzionalità seguenti a un'app:
- Sono estremamente sguardabili perché sono sempre presenti sul viso dell'orologio.
- Le complicazioni vengono aggiornate di frequente da watchOS. Qualsiasi app che include una complicazione sul viso dell'orologio attualmente visualizzato dell'utente viene aggiornata almeno due volte all'ora.
- Qualsiasi app con complicazione sul viso di controllo attualmente visualizzato dell'utente viene mantenuta in memoria, che rende l'avvio dell'app rapidamente e migliora la velocità delle risposte dall'app.
- Le complicazioni semplificano l'avvio di funzionalità specifiche da parte dell'utente in un'app watchOS.
Notifica a colpo d'occhio
La notifica su Apple Watch offre un ottimo modo personalizzabile per informare rapidamente l'utente di eventi o nuove informazioni, ad esempio messaggi in arrivo o raggiungere un obiettivo in un'app di allenamento.
Usando una notifica, le informazioni preziose possono essere presentate rapidamente all'utente. In molte situazioni, una notifica ben progettata può rimuovere la necessità per l'utente di avviare effettivamente l'app.
Novità di watchOS 3, tutte le notifiche ora supportano:
- SpriteKit
- SceneKit
- Inline Video
Interfaccia utente migliorata con SpriteKit e SceneKit
In genere, uno sviluppatore potrebbe pensare all'interfaccia utente del gioco quando vengono menzionati SpriteKit e SceneKit. Tuttavia, sia SpriteKit che SceneKit possono essere utili per la creazione di interfacce utente non di gioco che includono layout personalizzati, contenuti e animazioni che non sono altrimenti possibili solo in WatchKit.
Ad esempio, una notifica utente da un'app di condivisione foto può usare SpriteKit per offrire un'esperienza utente avanzata includendo l'utente che ha pubblicato l'immagine insieme a un'immagine effettiva e ad altre informazioni personalizzate che arricchiscono l'esperienza utente.
Inoltre, sia SpriteKit che SceneKit possono essere mescolati con gli elementi dell'interfaccia utente WatchKit standard nella progettazione dell'interfaccia utente dell'app.
Navigazione semplice
watchOS 3 presenta diversi modi in cui uno sviluppatore può semplificare la navigazione all'interno delle app watchOS, ad esempio le nuove funzionalità di paging verticale, supporto riconoscimento movimenti e rotazione della corona digitale presentate in precedenza .
Digital Crown è unico per Apple Watch e può essere usato in molti modi diversi per semplificare la navigazione. Ad esempio, un'applicazione timer può usare Digital Crown per eseguire lo scrub tramite lunghezze timer disponibili.
I movimenti personalizzati possono presentare modi nuovi e univoci per consentire all'utente di interagire con un'app watch e possono essere usati anche per semplificare lo spostamento delle app.
Apple suggerisce di cercare modi per combinare tutte le nuove funzionalità di interazione rapida aggiunte in watchOS 3 per presentare interfacce di app watchOS avanzate, semplici e veloci da usare.
Completamento dell'interazione rapida
Un'esperienza di interazione rapida ben progettata darà all'utente la sicurezza di rilasciare il polso (e disinnescarsi con l'app) al termine dell'interazione corrente.
In questo modo si verifica un problema quando l'app watch esegue qualsiasi tipo di connessione di rete o condivide informazioni con l'app complementare i Telefono. Questo può spesso portare a un indicatore di attesa durante l'esecuzione della transazione, che non è auspicabile durante un'interazione rapida. Ad esempio:
- L'utente sceglie un articolo da acquistare sull'orologio.
- Toccano il pulsante acquista.
- L'app avvia la transazione di rete e visualizza un indicatore di caricamento.
- In un secondo momento, la transazione viene completata e l'app visualizza una conformità di acquisto.
- L'utente rilascia il polso e si dissinnesga con l'app.
Dal momento in cui l'utente tocca il pulsante di acquisto fino al completamento della transazione, ha il polso alzato guardando un indicatore di caricamento. Per risolvere questa situazione, Apple suggerisce che lo sviluppatore deve presentare un feedback immediato all'utente invece di mostrare un indicatore di caricamento.
Usando il modello suggerito da Apple, esaminare di nuovo la stessa interazione rapida:
- L'utente sceglie un articolo da acquistare sull'orologio.
- Toccano il pulsante acquista.
- L'app avvia la transazione di rete e visualizza un messaggio che informa che l'acquisto è stato avviato correttamente.
- L'utente rilascia il polso e si dissinnesga con l'app.
- Quando la transazione viene completata correttamente in un secondo momento, l'app visualizza una notifica locale per informare l'utente di un acquisto riuscito.
Questa volta, non appena l'utente tocca il pulsante di acquisto viene visualizzato un messaggio che informa che l'acquisto è iniziato, in modo da poter cadere con sicurezza il polso e terminare l'interazione rapida a questo punto. Successivamente vengono informati dell'esito positivo o negativo della transazione in una notifica utente. In questo modo, l'utente interagisce solo con l'app durante le fasi "attive" del processo.
Per le app che eseguono la rete, possono usare uno sfondo NSURLSession
per gestire la comunicazione di rete con un'attività di download. In questo modo l'app verrà svegliata in background per elaborare le informazioni scaricate. Per l'app che richiede l'elaborazione in background, usare un'asserzione dell'attività in background per gestire l'elaborazione necessaria.
Progettazione rapida interazione Suggerimenti
Poiché la lunghezza desiderata di un'interazione rapida è di due secondi o meno, lo sviluppatore deve concentrarsi sulla progettazione delle interazioni dell'app fin dall'inizio del processo di progettazione. Trovare aree in cui queste interazioni possono essere semplificate (usando la tecnica presentata in precedenza) e usare le nuove funzionalità di watchOS 3 per rendere l'app veloce e reattiva.
Apple suggerisce quanto segue:
- Concentrarsi sulle interazioni rapide portando avanti le funzionalità più usate dell'app.
- Usare complicazioni e notifiche utente per visualizzare funzioni e funzionalità comuni.
- Creare un'interfaccia utente ricca e immediata con SceneKit e SpriteKit.
- Quando possibile, semplificare lo spostamento all'interno dell'app.
- Non fare mai aspettare l'utente, consentire loro di rilasciare il polso e disinnescarsi con l'app il prima possibile.
Riepilogo
Questo articolo ha illustrato le tecniche di interazione rapida aggiunte da Apple in watchOS 3 e come implementarle in Xamarin.iOS per Apple Watch.