[BreizhCamp 2015] Introduction to Android Wear - A Glimpse Into the Future

Cette conférence a été donnée par Cyril Mottier, de Capitaine Train, qui a pris part au portage de l’application Capitaine Train sur Android Wear.

Les principes d’une application Android Wear

La philosophie derrière le développement d’Android Wear est de limiter les interactions avec la technologie. En effet, l’accès à l’application est plus rapide (il suffit d’un geste pour consulter sa montre), et il n’y a pas de perte de temps à effectuer des activités qui n’étaient pas prévues au départ. Le but étant d’avoir plus de temps disponible pour la vie déconnectée. Les applications sur ce support gagneront tout à suivre cette philosophie, et devront être pensées différemment des applications mobiles.

Voici les trois principes fondamentaux qu’une application pour Android Wear doit suivre :

  • La contextualité : l’affichage dépendra étroitement du contexte dans lequel se trouve l’utilisateur. Par exemple, une application de météo devra montrer la météo de l’endroit où l’utilisateur se trouve (ou bien là où il se rend), mais ne doit pas le forcer à chercher sur une carte le lieu pour lequel il souhaite connaître la météo (ce sera réservé à l’application sur le téléphone). On peut utiliser pour cela les context helpers : - l’heure,
  • les capteurs : par exemple, le suivi des battements de cœur permet de savoir que l’utilisateur fait de l’exercice,
  • le calendrier,
  • l’activité : une combinaison des données du GPS et de l’accéléromètre pour savoir si l’utilisateur marche, court, fait du vélo,
  • l’identité,
  • la localisation,
  • l’ensemble des terminaux connectés;
  • La concision : l’information essentielle doit être visible en un clin d’œil, ce qui signifie qu’il faut limiter la quantité d’informations affichées à l’essentiel ;
  • La simplicité : les interactions doivent être limitées à deux maximum (hors voix) et toujours sous forme de gestes globaux. L’écran est trop petit pour faire des actions de pointage d’une zone.

Développer pour Android Wear

La première chose à savoir quand on veut développer pour Android Wear est qu’il n’existe pas de code partagé entre notre application pour téléphone et celle pour notre appareil porté, il s’agit bien de deux applications différentes sur deux OS différents.

La distribution se fait par le Play Store, l’utilisateur passera donc par son téléphone pour installer l’application sur la montre. L’APK de l’application pour le téléphone contiendra un autre APK qui sera lui poussé sur la montre.

Il n’est pas toujours nécessaire de développer une application pour Android Wear. En effet, le comportement de base est d’afficher sur la montre les notifications qui arrivent sur le téléphone. Il est possible en utilisant l’API Wearable Extender de modifier les notifications pour les appareils portés, notamment en précisant un fond, en regroupant des notifications, en ajoutant des pages et en ajoutant la reconnaissance vocale. Voici un article détaillant le code nécessaire.

Concernant Capitaine Train, le besoin d’une application s’est fait sentir, car il n’est pas possible d’afficher un texte différent pour la notification téléphone et Android Wear, or le texte était trop long pour être affiché sur un écran de taille montre et être visible d’un coup d’œil. Les applications pour Android Wear sont fondamentalement les mêmes que pour un autre appareil Android. On notera que quelques APIs (inutiles pour ce type de support) ne sont pas supportées. Inversement, nous pourrons utiliser des APIs spécifiques :

  • NodeAPI : pour connaître les terminaux connectés,
  • MessageAPI : pour l’envoi de messages vers la montre (ne renvoie pas d’erreur si aucune montre n’est connectée),
  • DataAPI : pour synchroniser les données sur tous les terminaux,
  • CapabilityAPI : pour connaître les capacités des autres terminaux connectés,
  • ChannelAPI : une synchronisation des données.

Dans l’application sur le téléphone, l’affichage de la notification sur la montre est désactivé en utilisant :

setLocalOnly(true)

L’envoi des données à la montre est fait manuellement, sous forme d’un objet DataMap.

Sur notre montre Android, on fait l’affichage de la notification dans la méthode onDataChanged(). Il faut également implémenter onDateEventDeleted() pour synchroniser la suppression de la notification sur le téléphone et la montre (afin d’éviter à l’utilisateur de le faire deux fois).

Pour finir, on ajoute une dépendance sur notre application Android Wear sous Gradle, et le tour est joué, l’application est prête à être distribuée !

Voici le support de présentation.