Partager via


Présentation des concepts de SiriKit

Cet article décrit les concepts clés qui seront nécessaires pour utiliser SiriKit dans une application Xamarin.iOS.

Nouveautés d’iOS 10, SiriKit permet à une application Xamarin.iOS de fournir des services accessibles à l’utilisateur à l’aide de Siri et de l’application Cartes sur un appareil iOS. Cette fonctionnalité est fournie dans une ou plusieurs extensions d’application à l’aide des nouvelles infrastructures d’interface utilisateur Intentions et Intentions.

SiriKit permet à une application iOS de fournir des services accessibles à l’utilisateur à l’aide de Siri et de l’application Cartes sur un appareil iOS à l’aide des extensions d’application et des nouvelles infrastructures d’interface utilisateur Intentions et Intentions.

Siri fonctionne avec le concept de domaines, de groupes d’actions de connaissance pour les tâches associées. Chaque interaction que l’application a avec Siri doit se trouver dans l’un de ses domaines de service connus comme suit :

  • Appel audio ou vidéo.
  • Réservation d’un tour.
  • Gestion des séances d’entraînement.
  • Messagerie.
  • Recherche de photos.
  • Envoi ou réception de paiements.

Lorsque l’utilisateur effectue une demande de Siri impliquant l’un des services de l’extension d’application, SiriKit envoie l’extension à un objet Intent qui décrit la demande de l’utilisateur ainsi que les données de prise en charge. L’extension d’application génère ensuite l’objet Response approprié pour l’intention donnée, détaillant la façon dont l’extension peut gérer la requête.

Les extensions d’interface utilisateur intentions et intentions

Siri et l’application Cartes interagissent avec les services de l’application via deux types différents d’extensions d’application :

  • Extension intentions : fournit Siri et Cartes avec le contenu de l’application et effectue les tâches requises pour remplir toutes les intentions prises en charge.
  • Extension de l’interface utilisateur intentions : fournit une interface utilisateur personnalisée qui s’affiche pour le contenu de l’application à l’intérieur de Siri ou de Cartes.

L’application doit fournir une extension Intents pour prendre en charge SiriKit et elle est chargée de fournir des informations que Siri et Cartes peuvent présenter à l’utilisateur et pour gérer les intentions.

La création d’une extension d’interface utilisateur intents est facultative, car Siri gère généralement toutes les interactions utilisateur et dispose d’une interface utilisateur intégrée standard pour présenter des informations dans chacun des domaines pris en charge. En fournissant une extension d’interface utilisateur Intents, l’application peut utiliser l’infrastructure de l’interface utilisateur Intention pour présenter une interface utilisateur riche et personnalisée présentant la personnalisation de l’application et des informations supplémentaires.

Siri et le rôle d’application Cartes

Les demandes parlées de l’utilisateur sont traitées et analysées sémantiquement par Siri, ce qui transforme ces demandes en intentions actionnables que les extensions d’intention peuvent gérer.

Cartes utilise les extensions d’intention de l’application pour afficher des informations dans l’interface Map en réponse aux actions de l’utilisateur. Par exemple, demander des restaurants à proximité ou obtenir les avis des restaurants de l’application.

Siri et Cartes gérer toutes les interactions de l’utilisateur et afficher les résultats à l’aide de l’interface système standard. Le rôle d’extensions d’application consiste principalement à fournir les données affichées. Si vous le souhaitez, l’application peut fournir une extension d’interface utilisateur intents et présenter une interface utilisateur personnalisée pour améliorer l’interface système par défaut.

Interaction avec Siri Via SiriKit

Cette section présente une vue d’ensemble de la façon dont SiriKit permet à l’utilisateur d’interagir avec l’application à l’aide de Siri. Pour l’amour de cet exemple, nous allons utiliser l’application Fake MonkeyChat :

Icône MonkeyChat

MonkeyChat conserve son propre carnet de contacts des amis de l’utilisateur, chacun associé à un nom d’écran (par exemple Bobo) et permet à l’utilisateur d’envoyer des conversations texte à chaque ami par son nom d’écran.

Il existe de nombreuses façons pour l’utilisateur d’initier une interaction avec l’application, car différentes personnes peuvent effectuer la même requête dans de nombreux formulaires différents.

Par exemple, si l’utilisateur voulait envoyer un message à son ami Bobo, il peut avoir la conversation suivante avec Siri :

Utilisateur : Hey Siri, envoyez un message MonkeyChat.
Siri : À qui ?
Utilisateur : Bobo.
Siri : Que voulez-vous dire à Bobo ?
Utilisateur : Envoyez plus de bananes.

Une autre personne peut effectuer la même requête avec une autre conversation :

Utilisateur : envoyez un message à Bobo sur MonkeyChat.
Siri : Que voulez-vous dire à Bobo ?
Utilisateur : Envoyez plus de bananes.

Et un autre utilisateur peut effectuer une demande encore plus courte :

Utilisateur : MonkeyChat Bobo s’il vous plaît envoyer plus de bananes.
Siri : Ok, envoyer un message s’il vous plaît envoyer plus de bananes à Bobo sur Monkeychat.

Ou même effectuer la même requête dans une autre langue :

Utilisateur : MonkeyChat Bobo s’il vous plaît envoyer plus de bananes.
Siri : Oui, message d’envoi s’il vous plaît envoyer plus de bananes à Bobo sur Monkeychat.

Pourtant, un autre utilisateur peut être très détaillé dans sa conversation :

Utilisateur : Hey Siri, pouvez-vous me faire une faveur et lancer l’application MonkeyChat pour envoyer un texte avec le message s’il vous plaît envoyer plus de bananes.
Siri : À qui ?
Utilisateur : Mon meilleur ami Bobo.

En outre, il existe de nombreuses façons dont Siri peut répondre à une demande, certaines en fonction de la façon dont la demande a été effectuée :

  • En tenant le bouton Accueil - Siri fournira des réponses visuelles plus limitées avec des commentaires verbales limités.
  • Par « Hey Siri » - Siri sera plus verbal et fournira moins de réponses visuelles.

Siri est également paramétré pour répondre aux besoins d’accessibilité de l’utilisateur et interagira et répondra en fonction de ces besoins.

Quelle que soit la façon dont une demande est effectuée ou comment Siri répond à la demande, Siri gère la conversation avec l’utilisateur et l’application (via ses extensions) fournit les fonctionnalités.

Lorsque l’utilisateur effectue une demande verbale de Siri, voici les étapes à suivre :

Étapes à suivre par Siri

  1. Tout d’abord, Siri prend l’audio de la reconnaissance vocale de l’utilisateur et le convertit en texte.
  2. Ensuite, le texte est converti en intention, une représentation structurée de la demande de l’utilisateur.
  3. En fonction de l’intention, Siri prendra des mesures pour effectuer la demande de l’utilisateur.
  4. Enfin, Siri présente les réponses (visuelles et verbales) à l’utilisateur en fonction de l’action effectuée.

Il existe trois façons principales pour l’application de participer à la conversation de l’utilisateur avec Siri :

Les trois principales façons dont l’application peut participer à la conversation des utilisateurs avec Siri

  1. Vocabulaire : il s’agit de la façon dont l’application indique à Siri les mots qu’il doit savoir pour interagir avec lui.
  2. Logique de l’application : il s’agit des actions et réponses que l’application prendra en fonction des intentions données.
  3. Interface utilisateur : il s’agit de l’interface utilisateur facultative personnalisée dans laquelle l’application peut donner ses réponses.

Exemple

Étant donné les informations ci-dessus, examinez comment la conversation suivante interagirait avec l’application MonkeyChat :

Utilisateur : Hey Siri, envoyez un message à Bobo sur MonkeyChat.
Siri : Que voulez-vous dire à Bobo ?
Utilisateur : Envoyez plus de bananes.

Le premier rôle que l’application prend dans la conversation consiste à aider Siri à comprendre la parole de l’utilisateur :

Aider Siri à comprendre la parole des utilisateurs

Siri n’a pas le nom « Bobo » dans sa base de données, mais l’application le fait et a partagé ces informations avec Siri via son vocabulaire. L’application aide également Siri à reconnaître que Bobo est un destinataire, car il les a spécifiés à Siri en tant que contact.

Siri sait qu’il est plus nécessaire d’envoyer un message qu’un seul destinataire. Il sera donc rapidement case activée avec l’extension d’application pour voir si un message nécessite du contenu. Comme MonkeyChat le fait, Siri répond à l’utilisateur avec la question : « Que voulez-vous dire à Bobo ? »

Dans l’exemple ci-dessus, l’utilisateur a répondu : « Envoyez plus de bananes », que Siri regroupera dans une intention structurée :

Siri regroupe la réponse de l’utilisateur dans une intention structurée

L’intention structurée contient les informations suivantes :

  • Domaine : Messages
  • Intention : sendMessage
  • Destinataire : Bobo
  • Contenu : Envoyez plus de bananes

Chaque domaine a comme ensemble d’actions de connaissance qui peuvent être effectuées dans ces domaines et en fonction du domaine et de l’action, zéro à de nombreux paramètres peuvent être inclus dans l’intention envoyée à l’application.

L’intention est ensuite envoyée à l’extension d’application pour traitement. En raison du traitement de l’intention, l’application génère un IntentResponse qui sera groupé avec l’intention et inclura des paramètres décrivant ce que l’application a fait avec l’intention.

Chaque IntentResponse inclut également un code de réponse qui indique à Siri si l’application a pu terminer la demande ou non. Certains domaines ont des codes de réponse d’erreur très spécifiques qui peuvent également être envoyés.

Enfin, IntentResponse inclut un NSUserActivity (comme ceux utilisés pour prendre en charge Hand Off). L’application NSUserActivity sera utilisée pour lancer l’application si la réponse les oblige à quitter l’environnement Siri et à entrer l’application pour la terminer.

Siri génère automatiquement un élément approprié NSUserActivity pour démarrer l’application et récupérer l’emplacement où l’utilisateur s’est arrêté dans l’environnement Siri. Toutefois, l’application peut fournir ses propres NSUserActivity informations personnalisées, si nécessaire.

Une fois que l’application a traité l’intention et retourné une réponse à Siri, elle présente ensuite les résultats à l’utilisateur (verbalement et visuellement) :

Résultats présentés à l’utilisateur à la fois verbalement et visuellement

Siri dispose de plusieurs interfaces utilisateur intégrées pour chacun des domaines disponibles pour l’application. Toutefois, étant donné que MonkeyChat a fourni une extension d’interface utilisateur d’intention facultative, il est utilisé pour présenter les résultats de la conversation à l’utilisateur dans l’exemple ci-dessus.

Cycle de vie de l’intention

Il existe trois tâches principales que l’extension d’application doit effectuer lors du traitement des intentions :

Cycle de vie de l’intention

  1. L’application doit résoudre chaque paramètre d’un événement. Par conséquent, l’application appelle Résoudre plusieurs fois (une fois par paramètre), et parfois plusieurs fois sur le même paramètre jusqu’à ce que l’application et l’utilisateur acceptent ce qui est demandé.
  2. L’application doit confirmer qu’elle peut gérer l’intention demandée et indiquer à Siri le résultat attendu.
  3. Enfin, l’application doit gérer l’intention et effectuer les étapes pour obtenir le résultat demandé.

Étape de résolution

La phase De résolution permet à Siri de comprendre les valeurs fournies par l’utilisateur et de s’assurer que ce que l’utilisateur signifie réellement est ce qui se passera lorsque l’intention est traitée par l’application.

Cette étape permet également à l’application d’influencer le comportement de Siri pendant la conversation avec l’utilisateur. Pour ce faire, l’application fournit une réponse de résolution. Il existe un certain nombre de réponses prédéfinies aux différents types de données que Siri comprend.

La réponse de résolution la plus courante de l’application sera Réussie, ce qui signifie que l’application correspond à l’élément de données spécifique d’un paramètre (par exemple, le nom d’écran de l’utilisateur) à une information qu’elle connaît.

Il peut arriver que l’application ait besoin de confirmer qu’une demande donnée correspond à l’information appropriée qu’elle connaît. Dans ces cas, il enverra une réponse ConfirmationRequired pour poser un oui ou aucune question à l’utilisateur, par exemple « Envoyer un message à Bobo the Great ? »

Dans d’autres cas, l’application exige que l’utilisateur puisse choisir parmi une courte liste d’options. Dans ce cas, l’application fournit une réponse d’ambiguïté avec une liste de deux à dix options permettant à l’utilisateur de choisir parmi telles que :

Who do you want to message?

* Bobo the Great
* Bobo Jr.
* Little Bobo

Siri gère l’utilisateur qui effectue la sélection, verbalement ou en interagissant avec l’interface utilisateur Siri, et le résultat est renvoyé à l’application.

Dans d’autres cas, il se peut que l’application ne dispose pas d’informations suffisantes pour résoudre le paramètre ou qu’il y ait trop de correspondances à résoudre à l’aide de l’ambiguïté (par exemple, 80 utilisateurs avec Bobo dans leur nom). Dans ce cas, l’application envoie une réponse NeedsMoreDetails et Siri invite l’utilisateur à être plus spécifique.

Si l’utilisateur n’a pas fourni de valeur requise pour traiter l’intention, il peut envoyer une réponse NeedsValue pour demander à Siri d’indiquer à l’utilisateur la valeur.

Si l’application ne prend pas en charge une valeur donnée par l’utilisateur pour un paramètre spécifique, elle peut envoyer la réponse UnsupportedWithReason pour fournir une raison pour laquelle la valeur n’a pas été prise en charge. Siri invite ensuite l’utilisateur à entrer une nouvelle valeur et lui donne la raison pour laquelle il est nécessaire.

Enfin, utilisez la réponse NotRequired pour indiquer à Siri que l’application ne nécessite pas de valeur pour un paramètre donné. Si l’utilisateur en fournit un de toute façon, il sera simplement ignoré par Siri.

Étape de confirmation

La phase de confirmation a deux objectifs :

  • Pour indiquer à Siri le résultat attendu de la gestion d’une intention afin que Siri puisse indiquer à l’utilisateur ce qui se passe.
  • Fournit une opportunité case activée tous les états requis que l’application peut avoir besoin d’effectuer la demande présentée par l’utilisateur, par exemple avoir suffisamment d’argent dans la banque pour effectuer le paiement demandé.

L’application fournit une réponse d’intention à partir de l’étape de confirmation, qui doit être remplie avec autant d’informations que l’application a disponibles afin que Siri puisse communiquer efficacement avec l’utilisateur.

En fonction du type domaine et action, Siri peut inviter l’utilisateur à confirmer, par exemple avant d’envoyer un paiement ou de réserver un trajet.

Étape de handle

L’étape handle est la partie la plus importante de l’utilisation d’une intention, car il s’agit du point où l’application répond à la demande de l’utilisateur en effectuant la tâche qu’elle a été demandée.

Tout comme dans la phase de confirmation, l’application doit fournir autant d’informations sur le résultat que possible afin que Siri puisse le lier à l’utilisateur. Parfois, ces informations seront présentées visuellement ou d’autres fois Siri le parlera simplement à l’utilisateur.

Il peut arriver que l’application ait besoin d’un temps supplémentaire pour traiter une demande donnée, par exemple des retards d’appel réseau ou si une personne active doit répondre à la demande (par exemple, terminer et envoyer une commande ou conduire une voiture à l’emplacement de l’utilisateur). Lorsque Siri attend une réponse de l’application, il affiche une interface utilisateur en attente à l’utilisateur lui indiquant que l’application traite la demande.

Dans l’idéal, l’application doit fournir une réponse à Siri dans un délai de deux à trois secondes au maximum. Si l’application sait qu’une réponse donnée va prendre plus de temps à traiter, elle doit envoyer un code de réponse InProgress à Siri. Siri informe ensuite l’utilisateur que l’application traite la demande en arrière-plan et continuera de le faire même si elle quitte l’environnement Siri.

Ajout de SiriKit à l’application

Avec SiriKit dans iOS 10, Apple a créé deux nouveaux points d’extension :

  • Extension intentions - Fournit Siri avec le contenu de l’application et effectue les tâches nécessaires pour remplir toutes les intentions prises en charge.
  • Extension de l’interface utilisateur intentions : fournit une interface utilisateur personnalisée qui s’affiche pour le contenu des applications à l’intérieur de Siri.

Il existe également une API pour fournir des mots et des expressions à Siri pour faciliter la reconnaissance sous la forme de :

  • Vocabulaire de l’application : mots et expressions communs à chaque utilisateur de l’application.
  • Vocabulaire utilisateur : mots et expressions uniques à un utilisateur d’application donné.

Extension intentions

L’extension Intentions est chargée de gérer les interactions principales entre l’application et Siri comme suit :

Extension intentions

L’extension d’intention peut prendre en charge une ou plusieurs intentions, c’est au développeur de décider comment il souhaite implémenter SiriKit dans l’application. Le développeur peut également ajouter une extension d’intention distincte pour chaque intention qui doit être gérée. Cela dit, Apple demande au développeur de limiter le nombre d’extensions d’intention afin que Siri n’ait pas plusieurs processus ouverts sur l’application, ce qui nécessite plus de mémoire et de temps à gérer.

Le développeur doit également savoir que l’extension d’intention s’exécute en arrière-plan pendant que Siri est actif. Cela permet à Siri de poursuivre activement une conversation avec l’utilisateur tout en communiquant avec l’extension pour traiter les informations sur la demande.

Considérations sur la confidentialité et la sécurité

Apple a pris de grandes mesures pour s’assurer qu’une information privée de l’utilisateur est sécurisée lors de l’utilisation de Siri et, par conséquent, il existe plusieurs interactions qui obligent l’utilisateur à se connecter sur l’appareil iOS. Par exemple, lors de la demande d’un trajet ou d’un paiement.

En outre, il existe des comportements spécifiques que l’application peut vouloir limiter à l’utilisateur connecté à l’appareil. Pour ces situations, l’application peut demander le comportement Restrict While Locked . Cette opération est effectuée via un paramètre dans le Info.plist fichier.

L’infrastructure d’authentification locale est disponible pour l’extension d’intention afin que l’application puisse demander à l’utilisateur des informations d’authentification supplémentaires, même si l’appareil est déjà déverrouillé.

Enfin, Apple Pay est disponible pour l’extension intention afin que l’application puisse effectuer une transaction à l’aide d’Apple Pay et la feuille Apple Pay intégrée apparaîtra au-dessus de l’interface Siri.

En outre, Apple souhaite s’assurer que les utilisateurs savent quand ils envoient des informations à une application tierce et, par conséquent, l’utilisateur doit indiquer le nom spécifique de l’application (tel que spécifié dans le nom complet de l’application) lors de la demande.

Apple a conçu Siri pour effectuer des conversations naturelles et fluides avec l’utilisateur et à cause de cela, le nom de bundle de l’application peut être utilisé dans de nombreuses parties de la parole, où qu’il s’intègre naturellement dans la demande de l’utilisateur.

L’une des choses courantes que les utilisateurs feront consiste à « verbifier » le nom de l’application, en d’autres termes, en prenant le nom de l’application et en l’utilisant comme verbe dans une demande. Par exemple, « MonkeyChat Bobo ceux-ci étaient de grandes bananes ».

Extension de l’interface utilisateur intentions

L’extension intentions de l’interface utilisateur présente l’opportunité de mettre l’interface utilisateur et la personnalisation de l’application dans l’expérience Siri et de rendre les utilisateurs connectés à l’application. Avec cette extension, l’application peut apporter la marque ainsi que des informations visuelles et d’autres informations dans la transcription.

Exemple de sortie de l’extension d’interface utilisateur Intents

L’extension d’interface utilisateur Intentions retourne toujours une UIViewController application et peut ajouter tout ce qu’elle aime à l’intérieur du contrôleur de vue, par exemple afficher des informations supplémentaires qui dépassent la réponse initiale. L’interface utilisateur intentions peut également mettre à jour l’utilisateur avec l’état d’un événement à long terme, par exemple combien de temps il faudra une voiture de partage de trajet pour atteindre son emplacement.

L’extension d’interface utilisateur Intentions s’affiche toujours avec d’autres contenus Siri tels que l’icône d’application et le nom en haut de l’interface utilisateur ou, en fonction de l’intention, des boutons (comme Envoyer ou Annuler) peuvent s’afficher en bas.

Il existe quelques instances où l’application peut remplacer les informations affichées par Siri à l’utilisateur par défaut, telles que la messagerie ou les mappages où l’application peut remplacer l’expérience par défaut par un utilisateur adapté à l’application.

Important

Bien qu’il soit possible d’ajouter des éléments interactifs tels que UIButtons ou UITextFields à l’extension d’interface utilisateur d’intention UIViewController, ceux-ci sont strictement interdits en tant qu’interface utilisateur intention dans une interface utilisateur non interactive et l’utilisateur ne pourra pas interagir avec eux.

Il est totalement facultatif pour l’application de fournir une extension d’interface utilisateur d’intention, car Siri contient un ensemble par défaut d’interface utilisateur pour chaque type d’intention. En outre, les interfaces d’interface utilisateur Intents sont disponibles uniquement pour certaines intentions que Apple a jugées utiles à l’utilisateur.

Ajout du vocabulaire SiriKit

La dernière partie de l’implémentation de SiriKit se trouve dans l’application en fournissant le vocabulaire requis. De nombreuses applications ont des moyens uniques de décrire des informations à l’utilisateur et des moyens uniques que l’utilisateur fournira des informations à l’application.

En raison de cela, Siri nécessite l’assistance de l’application pour comprendre les mots et expressions propres à l’application. Certaines de ces expressions font partie de l’application afin que chaque utilisateur sache et les comprend. Pourtant, d’autres seront uniques à un utilisateur donné de l’application.

Vocabulaire spécifique à l’application

Le vocabulaire spécifique de l’application définit les mots et expressions spécifiques qui seront connus de tous les utilisateurs de l’application, tels que les types de véhicules ou les noms d’entraînement. Étant donné qu’elles font partie de l’application, elles sont définies dans un AppIntentVocabulary.plist fichier dans le cadre du groupe d’applications principal. En outre, ces mots et expressions doivent être localisés.

Plusieurs parties sont présentes dans un fichier de vocabulaire AppIntentVocabulary.plist :

  • Exemple d’utilisation de l’application : il s’agit d’un ensemble de cas d’usage courants pour les demandes que l’utilisateur peut effectuer de l’application. Par exemple : « Démarrer une séance d’entraînement avec MonkeyFit ».
  • Paramètres : ils fournissent un ensemble de types de paramètres non standard spécifiques à l’application. Par exemple, les noms d’entraînement pour l’application MonkeyFit. Il s’agit des éléments suivants :
    • Expression : permet à l’application de définir des termes uniques pour l’application. Par exemple : le type d’entraînement « Bananarific » pour l’application MonkeyFit.
    • Prononciation - Donne des indicateurs de prononciation à Siri comme une orthographe phonétique simple pour une expression donnée. Par exemple, « ba nana ri fic ».
    • Exemple : fournit un exemple d’utilisation de l’expression donnée dans l’application. Par exemple, « Start a Bananarific in MonkeyFit ».

Pour plus d’informations, consultez la référence du format de fichier de vocabulaire d’application d’Apple.

Vocabulaire spécifique à l’utilisateur

Le vocabulaire spécifique de l’utilisateur va fournir des mots ou des expressions uniques à des utilisateurs individuels de l’application. Ceux-ci seront fournis au moment de l’exécution à partir de l’application principale (et non les extensions d’application) en tant qu’ensemble ordonné de termes classés dans une priorité d’utilisation la plus importante pour les utilisateurs, avec les termes les plus importants au début de la liste.

Examinez l’exemple de l’application MonkeyChat présentée ci-dessus. MonkeyChat conserve la liste de tous les contacts de l’utilisateur, qu’il envoie à Siri via le vocabulaire spécifique de l’utilisateur. Il conserve également la liste des 10 contacts les plus récents que l’utilisateur a message et il a un ensemble de contacts favoris pour chaque utilisateur. Pour cet exemple, les contacts favoris doivent être au début de notre vocabulaire spécifique à l’utilisateur, suivi des contacts récents, puis du reste des contacts de l’utilisateur.

Les types d’informations suivants sont pris en charge par le vocabulaire spécifique de l’utilisateur :

  • Noms des contacts.
  • Noms d’entraînement.
  • Noms des albums photo.
  • Mots clés photo.

Si l’application s’appuie sur le carnet d’adresses iOS, l’application n’aura pas à entreprendre d’action, car ces informations sont déjà disponibles pour Siri. L’application doit uniquement fournir des noms de contacts si l’application possède sa propre base de données unique de contacts.

Lors de la conception du vocabulaire, fournissez uniquement les valeurs nécessaires que les utilisateurs connaissent et s’intéressent. Évitez de fournir des informations telles que des numéros de téléphone ou des adresses e-mail.

L’application doit également mettre à jour Siri rapidement lorsque le vocabulaire spécifique de l’utilisateur change. Les utilisateurs sont habitués à demander des informations de Siri à l’instant où ils ont été ajoutés à leur appareil iOS. Par exemple, si l’utilisateur ajoute un nouveau contact dans l’application, envoyez ces informations à Siri dès que l’utilisateur l’enregistre.

Plus important encore, l’application doit supprimer rapidement les informations du vocabulaire Siri, car un utilisateur pourrait devenir contrarié s’il a supprimé une information, mais Siri l’a toujours reconnu pendant des heures ou des jours plus tard.

Important

L’application doit supprimer tout le vocabulaire spécifique de l’utilisateur de Siri si l’utilisateur choisit de réinitialiser l’application ou s’il se déconnecte.

Autorisations SiriKit

La dernière partie de SiriKit est centrée sur les autorisations. Tout comme l’utilisation d’autres fonctionnalités d’iOS (telles que photos, caméras ou contacts), les utilisateurs doivent accorder l’autorisation explicite à l’application de communiquer avec Siri.

L’application est en mesure de fournir une chaîne définissant les informations qu’elle fournira à Siri et de donner une raison pour laquelle l’utilisateur doit accorder cet accès.

Apple suggère que l’application doit demander l’autorisation à l’utilisateur d’utiliser Siri la première fois que l’utilisateur ouvre l’application après sa mise à niveau vers iOS 10. C’est pourquoi les utilisateurs connaissent l’intégration de Siri et peuvent pré-approuver l’utilisation avant d’effectuer leur première demande.

SiriKit et Cartes

SiriKit fait partie intégrante d’iOS et utilise le plus grand framework Intents ajouté à iOS 10. Le framework Intentions a été conçu pour partager des actions et intentions communes et partagées avec d’autres parties du système.

L’infrastructure Intents va au-delà de l’intégration de Siri et fournit d’autres fonctionnalités telles que l’intégration des contacts où l’application peut devenir l’application de téléphonie ou de messagerie par défaut pour des contacts spécifiques. Les intentions fournissent également une intégration approfondie avec CallKit pour fournir aux utilisateurs la meilleure expérience VOIP possible.

L’application Cartes dans iOS 10 a ajouté des fonctionnalités telles que le partage de trajets où l’utilisateur peut réserver un trajet directement à l’intérieur de l’interface utilisateur Cartes. SiriKit fournit un point d’extension commun avec Cartes afin que le partage de trajet (et d’autres) intentions puisse être partagé entre Siri et Cartes.

Cela signifie que si l’application a adopté les extensions SiriKit, elle obtiendra également l’intégration Cartes gratuitement.

Conception d’une expérience Siri exceptionnelle

La conception d’une expérience utilisateur optimale lors de l’intégration d’une application dans Siri est différente de la conception d’une interface utilisateur d’application exceptionnelle. Contrairement aux situations normales où l’utilisateur interagit directement avec l’application à l’écran, quand il utilise Siri, il y a de nombreuses fois quand aucune interface visuelle n’est visible du tout. Par exemple, lorsque l’utilisateur a démarré la conversation avec « Hey Siri ».

Comment Siri aide le développeur

Lors de la conception des interactions d’une application avec Siri, l’application crée une interface conversationnelle, ce qui signifie que le contexte est dérivé de la conversation que Siri a avec l’utilisateur au nom de l’application.

En l’absence de référence visuelle, l’utilisateur doit suivre les informations présentées en tête. En raison de cela, Siri présente les informations minimales nécessaires pour accomplir la tâche que l’utilisateur souhaite accomplir.

L’interface conversationnelle est formée par les questions et réponses de l’utilisateur et de Siri pendant la conversation. Il est donc important de réfléchir à la façon dont Siri pose des questions et répond lors de la conception de cette interface.

Prenez l’exemple suivant de l’utilisateur qui crée un message, Siri peut répondre à la question « Prêt à l’envoyer ? ». L’utilisateur peut répondre de plusieurs façons différentes telles que « Envoyer », « Annuler » ou même quelque chose de totalement non lié à cette question. Quelle que soit la façon dont la conversation s’affiche, Siri la gère pour l’application et ne l’envoie que les informations pertinentes dès qu’elle devient disponible.

Il existe plusieurs façons pour un utilisateur de lancer une conversation avec Siri :

  • En sélectionnant l’appareil, appuyez sur le bouton Accueil. Dans ce cas, Siri présente plus d’interfaces visuelles et moins de réponses verbales.
  • En disant « Hey Siri » et en commençant une conversation mains libres. Dans cette situation, Siri sera moins visuel et plus verbal.
  • À l’aide de fonctionnalités d’accessibilité telles que les aides auditives bluetooth activées, où l’interface utilisateur sera adaptée à un utilisateur ayant des besoins spéciaux.
  • Utilisation de Car Play où l’utilisateur doit garder son attention axée sur la conduite en conservant les distractions au minimum.

Comment le développeur aide Siri

Lors de l’intégration d’une application à Siri, le développeur doit souvent tester cette intégration et s’assurer qu’il effectue de nombreuses demandes différentes en demandant la même information ou tâche de plusieurs façons différentes que possible.

Étant donné qu’il n’y a pas deux personnes qui pensent de la même façon, il est essentiel que le développeur obtienne autant de testeurs bêta différents que possible pour affiner l’intégration de Siri. Les utilisateurs peuvent demander des informations ou effectuer des demandes de manière à ce que le développeur ne le fasse jamais, et ce réglage précis peut vous aider à garantir que le plus grand groupe d’utilisateurs dispose d’une grande expérience à l’aide de leur application avec Siri.

Testez dans différentes situations et environnements. Lancez les conversations avec Siri de toutes les façons possibles pour garantir que ces conversations restent fluides et naturelles. Testez dans des emplacements où l’utilisateur utiliserait plus que probablement l’application, comme dans une salle de gym bondée.

Assurez-vous que l’application fournit toutes les informations dont Siri a besoin pour représenter correctement la demande et le résultat pour l’utilisateur. Cela est particulièrement vrai lors de l’utilisation de Siri dans une situation mains libres.

Recommandations en matière de conception Siri

N’oubliez pas que Siri a une conversation avec l’utilisateur au nom de l’application. Le développeur veut ne pas s’assurer que cette conversation reste aussi fluide et naturelle que possible.

Comme ils le feraient avec n’importe quelle conversation importante, le développeur doit s’assurer que les éléments suivants sont les suivants :

  • Que l’application est préparée pour la conversation.
  • Que l’application écoute exactement ce que l’utilisateur essaie d’accomplir.
  • Que l’application pose les questions appropriées aux moments appropriés.
  • Que l’application répond à la demande avec les informations recherchées par l’utilisateur.

Préparation de la conversation

La première chose à retenir est que les utilisateurs de l’application ne seront pas exactement comme le développeur. Ils peuvent provenir de différents arrière-plans, parler différentes langues ou avoir des besoins spéciaux lors de l’utilisation de l’application.

En outre, étant donné que le développeur a conçu et créé l’application, il a une connaissance approfondie et intime de l’application et de ses fonctions internes qu’un utilisateur classique n’aura pas. Par conséquent, le développeur peut demander à Siri différemment d’un utilisateur normal.

C’est pourquoi il est essentiel d’avoir autant de personnes différentes que possible interagir avec l’application via Siri. Les utilisateurs peuvent faire des demandes de l’application via Siri que le développeur n’a jamais pensé ou de manière à ce que le développeur n’ait pas pris en compte.

Vérifier que l’application est un bon écouteur

Le développeur doit s’assurer que l’application est un bon écouteur et obtient les spécificités de la conversation qui répondent aux attentes de l’utilisateur. Mais il est également possible qu’ils n’aient pas fourni toutes les informations nécessaires à l’application pour atteindre la tâche demandée.

L’application peut gérer cette situation de plusieurs façons :

  • Choisissez une valeur par défaut correcte pour la valeur manquante : par exemple, une application de partage de trajet peut être définie par défaut sur l’emplacement actuel de l’utilisateur s’il n’a pas spécifié où il voulait être récupéré.
  • Faites une estimation instruite : à l’aide d’informations spécifiques collectées par l’application sur l’utilisateur, l’application peut être en mesure de deviner et d’informer les informations manquantes, telles que le remplissage d’un numéro mobile manquant à partir des informations de contact de l’utilisateur. Toutefois, vous devez prendre soin d’éviter les mauvaises surprises, telles que la sélection de l’option la plus coûteuse, etc.
  • Demander plus d’informations : l’application peut demander à Siri d’indiquer à l’utilisateur la valeur manquante. Toutefois, la clé ici est de garder les conversations simples et à ce point. Les utilisateurs seront rapidement frustrés s’ils doivent répondre à plusieurs questions pour obtenir leur demande.
  • Gérer l’information incorrectement : l’utilisateur peut fournir une valeur que l’application ne s’attendait pas ou qu’elle ne peut pas gérer dans le contexte donné. Assurez-vous que l’application associe cette situation à l’utilisateur de manière à ce qu’elle soit claire et facile à corriger.

Lorsque l’application est présentée avec une valeur unique en question, la meilleure façon de gérer ce problème consiste à demander à l’utilisateur de confirmer. Par exemple, « As-tu dit Bobo the Great ? », qu’ils peuvent répondre avec un simple oui ou aucune réponse.

Lorsqu’il existe une situation où plusieurs choix possibles peuvent être corrects pour une valeur unique, l’ambiguïté est la méthode de gestion préférée. Dans ce cas, Siri peut inviter l’utilisateur avec jusqu’à dix options possibles à choisir. Par exemple :

Who do you want to send the message to?

* Bobo the Great!
* Bobo Jr.
* Little Bobo

Si elle est toujours en question, invitez l’utilisateur à fournir une réponse totalement nouvelle et plus spécifique pour une valeur donnée.

Confirmation finale de la demande

Avant que l’application n’effectue réellement la tâche pour répondre à la demande de l’utilisateur, Siri case activée avec l’extension d’application pour vous assurer que tout est en place. Par exemple, l’utilisateur a-t-il suffisamment d’argent dans son compte pour effectuer le paiement demandé ?

En outre, l’application doit s’assurer qu’elle fournit toutes les informations possibles à Siri afin qu’elle puisse la présenter à l’utilisateur et confirmer que la tâche sur le point d’être effectuée répond à ses attentes.

Une fois que l’utilisateur a confirmé la demande et que l’application l’a effectuée, l’application doit à nouveau s’assurer qu’elle a fourni tous les résultats à Siri afin qu’elle puisse les lier à l’utilisateur.

Réponse à la demande

Siri dispose de plusieurs interfaces utilisateur intégrées pour chacun des domaines et actions qu’il connaît. Toutefois, le cas échéant, l’application peut fournir une extension d’interface utilisateur d’intention personnalisée pour enrichir l’expérience utilisateur en présentant la personnalisation et l’interface utilisateur de l’application ou plus d’informations que celles présentes dans la demande.

Cela dit, la contrainte doit être utilisée lors de la conception d’interfaces personnalisées pour Siri. En règle générale, l’utilisateur souhaite obtenir une tâche spécifique le plus rapidement possible et ne souhaite pas être surchargé avec des informations inutiles.

Veillez également à ce que l’interface utilisateur personnalisée ressemble et réponde correctement dans tous les différents appareils et orientations iOS que l’utilisateur peut avoir ou utiliser l’appareil.

Le cas échéant, utilisez l’API SiriKit pour masquer toutes les informations redondantes déjà présentes dans l’interface utilisateur Siri par défaut. Pourtant, assurez-vous que l’application fournit toujours les informations à Siri afin qu’elle puisse la présenter verbalement dans des situations mains libres.

Il peut arriver que Siri lance l’application pour répondre à la demande de l’utilisateur, par exemple la présentation des photos demandées par l’utilisateur. Dans ces situations, ne surprisez pas l’utilisateur. Affichez les informations attendues sans avoir d’étapes intermédiaires ou d’interactions supplémentaires requises. N’affichez jamais d’informations ni effectuez une tâche que l’utilisateur ne s’attend pas.

Polissage du design

Il existe plusieurs étapes que Apple suggère de polir la conception des interfaces conversationnelles. Tout d’abord, c’est en fournissant un vocabulaire clair, concis et des exemples de cas d’usage à Siri.

L’une des façons dont un utilisateur découvre l’application consiste à lancer une conversation avec Siri et à demander : « Que pouvez-vous faire ? » Siri affichera plusieurs choses différentes, notamment l’application du développeur et les exemples de cas d’usage héros qu’il a fournis via son plist fichier.

Comment écrire de bons exemples de cas d’usage :

  • Vérifiez que les exemples incluent le nom de l’application.
  • Conservez l’exemple court et à point.
  • Fournissez plusieurs exemples pour chacune des intentions que l’application prend en charge.
  • Hiérarchiser les intentions et les exemples qu’ils contiennent en fonction des cas d’usage les plus courants pour l’application.
  • Vérifiez que l’application fournit des exemples localisés.
  • Vérifiez que chaque exemple donné fonctionne comme prévu dans l’application.
  • Évitez de traiter Siri dans les exemples. N’incluez donc pas de texte comme « Hey Siri... »
  • Évitez les agréables inutiles telles que « s’il vous plaît » ou « merci ».

Prenez le temps approprié d’explorer et d’expérimenter la façon dont l’application peut mettre en forme la conversation que Siri a avec l’utilisateur en son nom. Veillez à communiquer avec les utilisateurs classiques tout au long du processus, car leurs interactions avec et attentes de l’application peuvent changer au fil du temps.

N’oubliez pas de tester l’application dans différentes situations et toutes les différentes méthodes pour appeler une conversation avec Siri. Testez dans des emplacements réels que l’utilisateur peut utiliser l’application, loin du bureau et du bureau.

S’efforcez d’avoir les conversations avec Siri (pour le compte de l’application) être fluide, naturelle et « se sentir juste droit ».

Résumé

Cet article a abordé les concepts clés requis pour utiliser SiriKit et montré qu’il peut interagir avec les applications Xamarin.iOS pour fournir des services accessibles à l’utilisateur à l’aide de Siri et de l’application Cartes sur un appareil iOS.