Partager via


Techniques d’interaction rapide pour watchOS 3 dans Xamarin

Cet article décrit les techniques d’interaction rapide qu’Apple a ajoutées dans watchOS 3 et comment les implémenter dans Xamarin.iOS pour Apple Watch.

Il est essentiel de fournir des interactions utilisateur rapides pour créer des applications Apple Watch attrayantes et des complications. Nouveautés de watchOS 3, Apple a ajouté la prise en charge de Gesture Recognizers, l’accès à la couronne numérique et aux nouvelles techniques de navigation et notification utilisateur. Cela, ainsi que la prise en charge ajoutée de SceneKit et de SpriteKit, permettent au développeur de créer facilement des interfaces riches et faciles à regarder qui sont à la fois rapides et réactives.

Présentation des interactions rapides

Pour un développeur qui est utilisé pour créer des applications pour iOS ou macOS (où le temps passé par un utilisateur à interagir avec l’application est mesuré en minutes ou en heures), la conception d’une application réussie pour Apple Watch peut être un défi et nécessite une approche différente.

Dans watchOS, l’utilisateur souhaite généralement lever son poignet, interagir rapidement avec une application (généralement pendant quelques secondes), puis déposer son poignet et continuer tout ce qu’il faisait.

Voici quelques exemples d’interactions rapides classiques sur Apple Watch :

  • Démarrage d’un minuteur.
  • Vérification du temps.
  • Marquage d’un élément hors d’une liste de tâches.

Pour atteindre ces objectifs, une application sur Apple Watch doit être :

  • Aperçu : cela signifie qu’avec un coup d’œil rapide, l’utilisateur doit être en mesure d’obtenir les informations dont il a besoin.
  • Actionnable - Ce qui signifie que les utilisateurs doivent être en mesure de prendre des décisions rapides et bien informées.
  • Réactif : cela signifie que l’utilisateur ne doit jamais attendre de recevoir les informations dont il a besoin ou d’atteindre l’action souhaitée.

Longueur des interactions rapides

En raison de la nature visuelle des applications Apple Watch, Apple suggère que la longueur idéale d’une interaction rapide doit être de deux secondes ou moins. Grâce à cette deuxième limite, le développeur devra consacrer beaucoup de temps à la conception et à l’implémentation d’une application Apple Watch.

Nouvelles fonctionnalités et API watchOS 3

Apple a ajouté plusieurs nouvelles fonctionnalités et API à WatchKit pour aider le développeur à ajouter des interactions rapides à leurs applications Apple Watch :

  • watchOS 3 permet d’accéder à de nouveaux types d’entrée utilisateur, tels que :
    • Reconnaissances de mouvements
    • Rotation de la couronne numérique
  • watchOS 3 fournit de nouvelles façons d’afficher et de mettre à jour des informations, telles que :
    • Navigation améliorée dans la table
    • Prise en charge du nouveau framework de notification utilisateur
    • Intégration de SpriteKit et SceneKit

En implémentant ces nouvelles fonctionnalités, le développeur peut s’assurer que son application watchOS 3 peut être aperçu, actionnable et réactive.

Prise en charge de Gesture Recognizer

Si le développeur a implémenté gesture Recognizers dans iOS, il doit être très familiarisé avec le fonctionnement de Gesture Recognizers dans watchOS 3. Pour actualiser, les reconnaissances de mouvement sont des objets qui analysent les événements tactiles de bas niveau en mouvements reconnaissables et prédéfinis.

watchOS 3 prend en charge les quatre modules de reconnaissance de mouvement suivants :

  • Types de mouvements discrets :
    • Mouvement de balayage (WKSwipeGestureRecognizer).
    • Mouvement d’appui (WKTapGestureRecognizer).
  • Types de mouvements continus :
    • Mouvement panoramique (WKPanGestureRecognizer).
    • Mouvement de longue pression (WKLongPressGestureRecognizer).

Pour implémenter l’un des nouveaux générateurs de reconnaissance de mouvement, faites-le simplement glisser vers une vue dans le Générateur d’interface de Xcode et configurez ses propriétés.

Dans le code, répondez à l’action du module de reconnaissance pour gérer le mouvement déclenché par l’utilisateur. Là encore, cela est fait de la même façon qu’il serait géré dans iOS.

États des mouvements discrets

Pour les mouvements discrets, l’action est appelée lorsque le mouvement est reconnu et qu’un état (WKGestureRecognizerState) est affecté comme suit :

États des mouvements discrets

Tous les mouvements discrets démarrent dans l’état Possible et passent à l’état ou Recognized à l’étatFailed. Lorsque vous utilisez des mouvements discrets, le développeur ne traite généralement pas directement avec l’état. Au lieu de cela, ils s’appuient sur l’action appelée lorsque le mouvement est reconnu uniquement.

États des mouvements continus

Les mouvements continus sont légèrement différents des gestes discrets, où l’action est appelée plusieurs fois au fur et à mesure que le mouvement est reconnu :

États des mouvements continus

Là encore, les mouvements continus commencent dans l’état Possible , mais ils progressent sur plusieurs mises à jour. Ici, le développeur doit prendre en compte l’état du module de reconnaissance et mettre à jour l’interface utilisateur de l’application pendant la Changed phase jusqu’à ce que le mouvement soit enfin Recognized ou Canceled.

Astuces d’utilisation de Gesture Recognizer

Apple suggère les éléments suivants lors de l’utilisation de Gesture Recognizers dans watchOS 3 :

  • Ajoutez les modules de reconnaissance de mouvement aux éléments de groupe au lieu de contrôles individuels. Étant donné que l’Apple Watch a une taille d’écran physique plus petite, les éléments de groupe ont tendance à être des cibles plus grandes et plus faciles pour que l’utilisateur atteigne. En outre, les reconnaissances de mouvement peuvent entrer en conflit avec les mouvements intégrés déjà dans les contrôles d’interface utilisateur natifs.
  • Définissez les relations de dépendance dans le Storyboard de l’application espion.
  • Certains mouvements sont prioritaires sur d’autres types de mouvements, tels que :
    • Scrolling
    • Forcer l’interaction tactile

Rotation de la couronne numérique

En implémentant digital Crown Support dans leurs applications watchOS 3, un développeur peut fournir une vitesse de navigation accrue et des interactions de précision pour ses utilisateurs.

Étant donné que watchOS 2, l’application Apple Watch peut utiliser l’objet WKInterfacePicker pour accéder à la couronne numérique en fournissant une liste et un style sélecteur WKPickerItems (liste, empilée ou séquence d’images). watchOS a ensuite autorisé l’utilisateur à utiliser digital Crown pour sélectionner un élément dans la liste.

Lors de l’utilisation d’un WKInterfacePicker, WatchKit gère la plupart du travail par :

  • Dessin de la liste et des éléments d’interface individuels.
  • Traitement des événements Digital Crown.
  • Appel d’une action lorsqu’un élément est sélectionné.

Nouveau pour watchOS 3, le développeur dispose désormais d’un accès direct aux événements de rotation Digital Crown, ce qui leur permet de créer leurs propres éléments d’interface utilisateur qui répondent aux valeurs de rotation.

L’accès digital Crown est fourni par les éléments suivants :

  • WKCrownSequencer - Fournit l’accès aux rotations par seconde.
  • WKCrownDelegate - Fournit l’accès aux événements delta de rotation.

Rotations par seconde

L’accès aux rotations par seconde à partir de la couronne numérique est utile lors de l’utilisation d’animations basées sur la physique. Pour accéder aux rotations par seconde, utilisez la CrownSequencer propriété de l’extension WKInterfaceController Espion. Par exemple :

var rotationsPerSecond = CrownSequencer.RotationsPerSecond;

Deltas de rotation

Utilisez les deltas de rotation de la couronne numérique pour compter le nombre de rotations. Utilisez la CrownDidRotate méthode de remplacement pour WKCrownDelegate accéder aux deltas de rotation. Par exemple :

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
  }
}

Ici, l’application conserve un accumulateur (AccumulatedRotations) pour déterminer le nombre de rotations. Une rotation complète de la Couronne numérique est égale à un delta cumulé d’une 1.0 demi-rotation serait 0.5.

Apple l’a laissé au développeur pour déterminer comment le nombre de rotations correspond à la sensibilité des modifications sur l’élément d’interface utilisateur mis à jour.

Le signe (+/-) du delta rotationnel indique la direction que l’utilisateur tourne la couronne numérique :

Le signe du delta rotationnel indique la direction que l’utilisateur tourne la couronne numérique

Si l’utilisateur fait défiler vers le haut, WatchKit retourne des deltas positifs et s’il fait défiler vers le bas, les deltas négatifs sont retournés, quelle que soit l’orientation dans laquelle l’utilisateur porte la montre.

Digital Crown Focus

Tout comme n’importe quel autre élément d’interface, la Couronne numérique a le concept de Focus. Ce focus peut être déplacé de la couronne numérique vers d’autres éléments d’interface en fonction de la façon dont l’utilisateur interagit avec la montre.

Par exemple, l’un des contrôles suivants peut voler le focus de la couronne numérique :

  • Picker
  • Curseur
  • Contrôleur de défilement

Il incombe au développeur de déterminer quand son élément d’interface personnalisé doit être le focus de la couronne numérique. Apple suggère d’utiliser les nouveaux reconnaissances de mouvement pour obtenir le focus dans l’élément d’interface utilisateur personnalisé.

Pagination verticale

La façon standard pour qu’un utilisateur navigue dans une application WatchOS consiste à faire défiler jusqu’à l’élément de données souhaité, appuyez sur une ligne spécifique pour afficher l’affichage détaillé, appuyez sur le bouton Précédent lorsque vous avez terminé d’afficher les détails et répétez le processus pour toutes les autres informations qui leur intéressent à partir du tableau :

Déplacement entre une table et l’affichage Détails

Nouveautés de watchOS 3, le développeur peut activer la pagination verticale sur ses contrôles d’affichage table. Avec cette fonctionnalité activée, l’utilisateur peut faire défiler pour rechercher une ligne d’affichage de table et appuyer sur la ligne pour afficher ses détails comme avant. Toutefois, ils peuvent maintenant balayer vers le haut pour sélectionner la ligne suivante dans la table ou vers le bas pour sélectionner la ligne précédente (ou utiliser la couronne numérique), tout cela sans avoir à revenir en premier à l’affichage table :

Déplacement entre une table et l’affichage Détail et balayage vers le haut et vers le bas pour se déplacer entre les autres lignes

Pour activer ce mode, ouvrez le Storyboard de l’application watchOS dans Xcode pour modification, sélectionnez l’affichage table et case activée la zone de pagination des détails verticaux case activée box :

Vérifier la case activée box de pagination des détails verticaux

Vérifiez que le tableau utilise Segues pour afficher l’affichage détaillé et enregistrer les modifications apportées au storyboard et revenir à Visual Studio pour Mac à synchroniser.

Le développeur peut engager par programmation la pagination verticale vers une ligne spécifique à l’aide du code suivant sur une vue table :

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

Lorsque vous utilisez la pagination verticale, le développeur doit savoir que WatchKit gère automatiquement le préchargement des contrôleurs et, par conséquent, certaines méthodes de cycle de vie du contrôleur peuvent être appelées avant que l’interface utilisateur soit réellement visible.

Améliorations apportées aux notifications

La notification est la forme principale d’interaction rapide qu’un utilisateur subit généralement sur watchOS et qui a été disponible depuis la première Apple Watch et watchOS 1.

Une interaction rapide de notification classique est la suivante :

  1. L’utilisateur sent la notification Haptic lorsqu’une nouvelle notification est reçue.
  2. Ils soulèvent leur poignet pour voir l’interface Short Look pour la notification.
  3. S’ils continuent à garder leur poignet déclenché, watchOS passe automatiquement à l’interface de notification de recherche longue.

Il existe plusieurs façons pour un utilisateur de répondre à la notification :

  • Pour une notification bien définie et présentée, l’utilisateur ne fera rien et ignore simplement la notification.
  • Ils peuvent également appuyer sur la notification pour lancer l’application watchOS.
  • Pour une notification qui prend en charge les actions personnalisées, l’utilisateur peut sélectionner l’une des actions personnalisées. Il peut s’agir des éléments suivants :
    • Actions de premier plan : celles-ci lancent l’application pour effectuer l’action.
    • Actions en arrière-plan : ont toujours été routées vers l’i Téléphone dans watchOS 2, mais peuvent être acheminées vers l’application watchApp dans watchOS 3.

Nouveautés de watchOS 3 :

  • La notification utilise une API similaire sur toutes les plateformes (iOS, watchOS, tvOS et macOS).
  • La notification locale peut être planifiée sur Apple Watch.
  • La notification en arrière-plan est acheminée vers l’extension de l’application si elle a été planifiée sur l’Apple Watch.

Planification et remise des notifications

La notification de l’i Téléphone de l’utilisateur est transmise à l’Apple Watch lorsque les événements suivants se produisent :

  • L’écran de i Téléphone est désactivé.
  • L’Apple Watch est porté et a été déverrouillé.

Dans watchOS 3, les notifications locales peuvent être planifiées sur l’Apple Watch et sont uniquement livrées sur la montre. Il incombe au développeur de planifier une notification i Téléphone correspondante si elle est requise par l’application.

En incluant le même identificateur de notification sur les versions Apple Watch et i Téléphone des notifications, il empêche l’affichage des notifications en double sur la montre. La version Apple Watch de la notification est prioritaire sur la version i Téléphone.

Étant donné que watchOS 3 utilise le même UINotification framework d’API que iOS 10, consultez notre documentation iOS 10 User Notification Framework pour plus d’informations.

Utilisation de SpriteKit et sceneKit

Nouveautés de watchOS 3, le développeur peut désormais utiliser des objets SpritKit et SceneKit dans la conception de l’interface utilisateur de leur application pour présenter à la fois des graphiques 2D et 3D.

Deux nouvelles classes d’interface ont été ajoutées pour prendre en charge cette fonctionnalité :

  • WKInterfaceSKScene - Pour utiliser des graphiques SpriteKit 2D.
  • WKInterfaceSCNScene - Pour utiliser des graphiques SceneKit 3D.

Pour utiliser ces objets, faites-les simplement glisser sur l’aire de conception à l’intérieur du Storyboard de l’application espion dans le Générateur d’interface de Xcode et utilisez l’inspecteur d’attributs pour les configurer.

À partir de ce stade, l’utilisation des scènes SpriteKit ou SceneKit fonctionne de la même façon qu’à l’intérieur d’une application iOS. L’application espion présente une WKInterfaceSKScene application en appelant l’une des Present méthodes. Pour SceneKit, définissez simplement la Scene propriété de l’objet WKInterfaceSCNScene .

Complications actionnables

Dans watchOS 2, Apple a introduit complications pour les applications tierces. Dans watchOS 3, Apple a développé les capacités qu’un développeur peut inclure dans une complication WatchKit.

En outre, davantage de visages de montre intégrés peuvent désormais inclure complications et les visages de montre existants qui ont déjà pris en charge Complications peuvent désormais inclure encore plus de complications.

En outre, la possibilité pour un utilisateur de balayer rapidement vers la gauche ou la droite pour passer à travers tous les visages de montre qu’ils ont installés sur leur Apple Watch. À l’aide de la nouvelle galerie sur l’application i Téléphone complémentaire d’Apple Watch, l’utilisateur peut ajouter et personnaliser de nouveaux visages de montre et l’une des complications qu’il peut inclure.

En raison de ces nouvelles fonctionnalités, Apple suggère que chaque application sur Apple Watch doit également inclure au moins une complication et, par conséquent, toutes les applications Apple Watch natives ont désormais des complications.

Les complications fournissent les fonctionnalités suivantes à une application :

  • Ils sont très aperçus, car ils sont toujours présents sur le visage de la montre.
  • Les complications sont fréquemment mises à jour par watchOS. Toute application qui inclut une complication sur le visage de montre actuellement affiché de l’utilisateur est mise à jour au moins deux fois par heure.
  • Toute application avec une complication sur le visage de montre actuellement affiché de l’utilisateur est conservée en mémoire, ce qui rend l’application lancée rapidement et améliore la vitesse des réponses de l’application.
  • Les complications permettent à l’utilisateur de lancer facilement des fonctionnalités spécifiques dans une application watchOS.

Notification pouvant être vue d’ensemble

La notification sur Apple Watch offre un excellent moyen personnalisable d’informer rapidement l’utilisateur des événements ou de nouvelles informations telles que les messages entrants ou atteindre un objectif dans une application d’entraînement.

À l’aide d’une notification, des informations précieuses peuvent être rapidement présentées à l’utilisateur. Dans de nombreuses situations, une notification bien conçue peut supprimer la nécessité pour l’utilisateur de lancer réellement l’application.

Nouveautés de watchOS 3, toutes les notifications prennent désormais en charge :

  • SpriteKit
  • SceneKit
  • Vidéo inline

Interface utilisateur améliorée avec SpriteKit et SceneKit

En règle générale, un développeur peut penser à l’interface utilisateur de jeu lorsque SpriteKit et SceneKit sont mentionnés. Toutefois, SpriteKit et SceneKit peuvent être utiles pour créer des interfaces utilisateur non-gaming qui incluent des dispositions personnalisées, du contenu et des animations qui ne sont pas possibles dans WatchKit seul.

Par exemple, une notification utilisateur d’une application de partage de photos peut utiliser SpriteKit pour fournir une expérience utilisateur enrichie en incluant l’utilisateur qui a publié l’image avec une image réelle et d’autres informations personnalisées qui enrichissent l’expérience utilisateur.

En outre, SpriteKit et SceneKit peuvent être mélangés à des éléments d’interface utilisateur WatchKit standard dans la conception de l’interface utilisateur de l’application.

Simple Navigation

watchOS 3 présente plusieurs façons dont un développeur peut simplifier la navigation au sein de ses applications watchOS, telles que les nouvelles fonctionnalités de pagination verticale, de prise en charge de Mouvement Recognizer et de rotation de la couronne numérique présentées ci-dessus.

La Couronne numérique est unique à l’Apple Watch et peut être utilisée de nombreuses façons différentes pour simplifier la navigation. Par exemple, une application de minuteur peut utiliser la couronne numérique pour parcourir les durées de minuteur disponibles.

Les mouvements personnalisés peuvent présenter de nouvelles façons uniques pour l’utilisateur d’interagir avec une application espion et peuvent également être utilisés pour simplifier la navigation de l’application.

Apple suggère de rechercher des moyens de combiner toutes les nouvelles fonctionnalités d’interaction rapide ajoutées dans watchOS 3 pour présenter des interfaces d’application WatchOS riches, faciles et rapides.

Fin de l’interaction rapide

Une expérience d’interaction rapide bien conçue permet à l’utilisateur de laisser tomber son poignet (et de se désengager avec l’application) lorsqu’il a terminé l’interaction actuelle.

Là où cela devient spécifiquement un problème, c’est quand l’application espion effectue n’importe quel type de connexion réseau ou de partage d’informations avec son application i Téléphone complémentaire. Cela peut souvent entraîner un indicateur d’attente pendant que la transaction a lieu, ce qui n’est pas souhaitable lors d’une interaction rapide. Prenons l’exemple suivant :

Diagramme de l’application espion qui effectue une connexion réseau et partage des informations avec son application i Téléphone complémentaire

  1. L’utilisateur choisit un élément à acheter sur la montre.
  2. Ils appuient sur le bouton Acheter.
  3. L’application démarre la transaction réseau et affiche un indicateur de chargement.
  4. Une fois plus tard, la transaction se termine et l’application affiche une conformité d’achat.
  5. L’utilisateur supprime son poignet et se désengage avec l’application.

À partir du moment où l’utilisateur appuie sur le bouton Acheter jusqu’à ce que la transaction soit terminée, son poignet est déclenché en regardant un indicateur de chargement. Pour résoudre cette situation, Apple suggère que le développeur doit présenter des commentaires instantanés à l’utilisateur au lieu d’afficher un indicateur de chargement.

À l’aide du modèle suggéré par Apple, examinez à nouveau la même interaction rapide :

Diagramme de modèle suggéré par Apples

  1. L’utilisateur choisit un élément à acheter sur la montre.
  2. Ils appuient sur le bouton Acheter.
  3. L’application démarre la transaction réseau et affiche un message indiquant que l’achat a démarré correctement.
  4. L’utilisateur supprime son poignet et se désengage avec l’application.
  5. Une fois la transaction terminée ultérieurement, l’application affiche une notification locale pour informer l’utilisateur d’un achat réussi.

Cette fois, dès que l’utilisateur appuie sur le bouton Acheter, il affiche un message indiquant que l’achat a démarré, afin qu’il puisse supprimer en toute confiance son poignet et mettre fin à l’interaction rapide à ce stade. Plus tard, ils sont informés de la réussite ou de l’échec de la transaction dans une notification utilisateur. De cette façon, l’utilisateur interagit uniquement avec l’application pendant les phases « actives » du processus.

Pour les applications qui effectuent une mise en réseau, elles peuvent utiliser un arrière-plan NSURLSession pour gérer la communication réseau avec une tâche de téléchargement. Cela permet à l’application d’être réveillée en arrière-plan pour traiter les informations téléchargées. Pour l’application qui nécessite un traitement en arrière-plan, utilisez une assertion de tâche en arrière-plan pour gérer le traitement requis.

Conception d’interaction rapide Astuces

Étant donné que la longueur souhaitée d’une interaction rapide est de deux secondes ou moins, le développeur doit se concentrer sur la conception des interactions de l’application à partir du début du processus de conception. Recherchez les zones où ces interactions peuvent être simplifiées (à l’aide de la technique présentée ci-dessus) et utilisez les nouvelles fonctionnalités de watchOS 3 pour rendre l’application rapide et réactive.

Apple suggère ce qui suit :

  • Concentrez-vous sur les interactions rapides en mettant en avant les fonctionnalités les plus utilisées de l’application.
  • Utilisez des complications et des notifications utilisateur pour exposer les fonctionnalités et fonctions courantes.
  • Créez une interface utilisateur riche et rapide avec SceneKit et SpriteKit.
  • Dans la mesure du possible, simplifiez la navigation au sein de l’application.
  • N’attendez jamais l’utilisateur, laissez-les déposer et désengager l’application dès que possible.

Résumé

Cet article a abordé les techniques d’interaction rapide qu’Apple a ajoutées dans watchOS 3 et comment les implémenter dans Xamarin.iOS pour Apple Watch.