Tutoriel Swift : la gestion des entrées utilisateurs sur une Apple Watch

ES-WatchOS

Comment récupérer une entrée utilisateur personnalisée (ex : un nom de fichier, un message…) sur une Apple Watch qui, comme vous l’avez sans doute constaté, ne possède pas de clavier ?

En fait, une fois de plus, c’est quelque chose de très simple à réaliser en Swift.

L’application Apple Watch que je vous propose en démo est très basique : lorsque l’utilisateur appuie sur le bouton « Get input », une liste de phrases pré-définies lui est proposée. En cliquant sur le micro, on lui propose de prononcer sa propre phrase. Celle-ci est ensuite récupérée et affichée dans un label.

Voici l’appli terminée :

Allez, on plonge…

Avec XCode, on commence de manière traditionnelle en créant une application IOS / Swift, avec le template « iOS App with WatchKit App ».

Pour plus de détails sur cette étape et sur la création des vues, je vous invite à jeter un oeil ici : Tutoriel Swift : communication Apple Watch – iPhone.

Ensuite, les choses sérieuses commencent…

Le framework WatchKit supporte 3 types d’entrées utilisateur : la sélection depuis des phrases pré-définies, la dictée vocale et la sélection d’emoji.

Notre application Watchkit comprend un seul écran, avec 1 bouton et 1 label, voilà donc le code du contrôleur :

InterfaceController

Le code le plus important pour cette appli se trouve dans l’action liée au bouton :

getUserInput

On crée une liste de phrases pré-définies, puis on sélectionne le mode d’entrée désiré. Les 3 modes possibles sont :

  • WKTextInputMode.Plain : on permet à l’utilisateur de sélectionner une phrase pré-définie ou d’utiliser le mode dictée (symbolisé par un bouton « micro »). Il n’y a pas de bouton Emoji
  • WKTextInputMode.AllowEmoji : c’est la mème chose que le mode précèdent, mais on ajoute en plus un bouton pour sélectionner un emoji non animé.
  • WKTextInputMode.AllowAnimatedEmoji : idem que ci-dessus, mais avec des emoji animés.

On récupère ensuite le premier élément d’un tableau de résultats pour l’afficher. Attention, dans mon application, ne traite que des entrées de type « String ». Mais si vous voulez utiliser en plus la possibilité de récupérer des emoji, il faudra déterminer si l’on à affaire à un type « String » ou un type « NSData Object » avec un test de ce genre :

isStringOrNSData

Voilà, il n’y a plus qu’à tester !

Comme d’habitude, je suis à l’écoute de tout commentaire, et vous retrouverez le projet complet sur Gitlab : https://gitlab.com/camilleBar/watchkitdictation

Happy coding !

Votre commentaire

Entrez vos coordonnées ci-dessous ou cliquez sur une icône pour vous connecter:

Logo WordPress.com

Vous commentez à l’aide de votre compte WordPress.com. Déconnexion /  Changer )

Photo Facebook

Vous commentez à l’aide de votre compte Facebook. Déconnexion /  Changer )

Connexion à %s

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur la façon dont les données de vos commentaires sont traitées.