Siri dispose-t-il d’une API ?


Apple a publié une API pour Siri dans iOS 10. Elle s'appelle SiriKit. Craig Federighi a présenté SiriKit lors de la WWDC 2016. Passez à 55 minutes de la keynote 2016 pour l'introduction.

main-qimg-b8c9a56eaf9e76b852661c7d241cc9de.webp


Pour une annonce aussi attendue, un temps étonnamment court est consacré à SiriKit. Il obtient à peine deux minutes.

Pour iOS 10, seuls six types de requête (appelés domaines) sont autorisés :


Réservation de trajet : "Trouvez-moi un trajet vers SFO via Uber". Demandez un trajet par le biais d'apps qui fournissent des services de covoiturage et d'autres services de type taxi.

Messagerie : "Envoyez un texte à Joanna en utilisant WhatsApp." Envoyez des messages texte par le biais d'apps qui prennent en charge les services de messagerie.

Recherche de photos : "Rechercher des photos de plage prises l'été dernier sur Instagram". Rechercher des photos et des vidéos d'un type de contenu particulier et lire des diaporamas dans l'appli de leur choix.

Paiements : " Envoyez 100 $ à John pour le dîner d'hier soir en utilisant Venmo. " Envoyer et demander des paiements à d'autres personnes, en utilisant des apps qui prennent en charge les paiements personnels.

Appels VoIP : "Appelez Peter sur Skype." Lancez des appels vidéo et audio avec des apps qui prennent en charge la voix sur IP.

Entraînements : "Commencer mon entraînement quotidien de course à pied avec Runkeeper". Commencez, mettez en pause et terminez vos séances d'entraînement en utilisant votre application d'entraînement préférée.

Climat et radio CarPlay : "Réglez le chauffage à 72 degrés." Spécifiquement conçu pour les apps des constructeurs automobiles, cela permet aux utilisateurs de régler les commandes de climatisation et de régler la radio lorsqu'ils sont dans leur voiture.

D'autres domaines seront ajoutés dans les prochaines versions. Craig Federighi a parlé à John Gruber après la WWDC du choix des domaines dans un épisode en direct du Talk Show. Il a dit que les domaines ont été choisis parce que ce sont des domaines qu'Apple a l'expérience et connaît bien.

SiriKit est programmé en utilisant des "Intents" qui représentent une action particulière que l'utilisateur veut faire faire. Chaque domaine a plusieurs intents qui lui sont associés. Chaque intention possède des propriétés qui sont optionnelles ou nécessaires. L'intention "envoyer un paiement" possède des propriétés pour le bénéficiaire, le montant en devise, la méthode de paiement et une note. SiriKit vous donne la possibilité de clarifier les propriétés (par exemple si vous demandez à "appeler Samantha" mais qu'il y a deux Samantha dans votre carnet d'adresses). Il peut y avoir plusieurs allers-retours pendant que l'extension SiriKit essaie d'obtenir toutes les informations dont elle a besoin pour répondre à l'intention de l'utilisateur. Lorsque l'extension réussit ou échoue à exécuter l'intention, elle renvoie une réponse à Siri afin que Siri puisse informer l'utilisateur du résultat.

Vous pouvez créer une interface personnalisée que Siri affichera à l'aide de l'interface utilisateur Intents, qui envoie un contrôleur de vue créé par votre application à Siri.

Tout fonctionne par le biais d'extensions (la même technologie que les widgets Today), de sorte que l'application principale n'est jamais invoquée. Cela nécessite que le programmeur sépare le code commun dans un cadre que l'app principale et l'extension SiriKit peuvent utiliser (par exemple le code qui fait le travail d'envoi d'un message).

Apple a un bon guide sur SiriKit et le cadre Intents.

La plupart des gens qui voient la liste des domaines commentent que c'est un sac très mixte sans aucune logique dans les choix. Pourquoi pas de listes de tâches, avec lesquelles Apple a également de l'expérience ? Pourquoi pas de recherche générale d'applications, qui est facile à modéliser ? Pourquoi pas de cartes ? Ma conviction est que les domaines choisis ne sont accessibles qu'aux grandes entreprises bien établies. Les exemples que Craig Federighi donne sont Slack, WhatsApp, WeChat, Uber, Lyft, Didi, EyeEm, Shutterfly, Pinterest, MapMyRun, Runtastic, Runkeeper, SquareCash, AliPay et Vonage. Je pense que c'est pour qu'Apple puisse faire un déploiement limité et contrôlé, et aplanir les problèmes avant d'ouvrir des domaines que les petits développeurs peuvent utiliser.

Quelques mois avant la sortie de SiriKit, j'ai écrit un article sur la façon dont je pensais que l'API Siri serait déployée, arguant que la recherche serait la première étape, suivie d'un ensemble limité d'actions clés. Une grande partie de ce que j'ai écrit était erronée, attribuant plus de magie à Siri sur la façon dont il comprendrait les commandes. En réalité, SiriKit est très rigide quant aux intentions qu'il autorise, mais permissif quant aux façons dont l'utilisateur peut exprimer ces intentions.

Les applications qui utilisent SiriKit seront disponibles pour le grand public lors du lancement d'iOS 10 à l'automne 2016. Si vous disposez d'un compte de développeur, vous pouvez l'essayer dès maintenant en téléchargeant UnicornChat sur le site de documentation pour les développeurs Apple et en apprendre davantage en regardant la session 217 de la WWDC 2016 : Présentation de SiriKit et la session 225 : Étendre vos applications avec SiriKit.