Xamarin & Android Wear (1/3) : Les bases indispensables pour bien démarrer

Xamarin Android Wear J’ai eu récemment l’occasion de créer une application Android Wear pour un client avec Xamarin. Ce projet, bien qu’intéressant, ne s’est pas fait sans peine : Android Wear reste aujourd’hui encore en preview et l’est davantage avec Xamarin. Je vous propose de revenir ensemble sur ce long parcours tout en redéfinissant l’environnement de développement pour ceux qui n’y seraient pas familiers.


Cet article bien que s’adressant à tout type de développeurs implique un « minimum » de connaissance sur Xamarin et sur Android, aussi petites soient-elles. Par ailleurs, pour assurer un maximum de lisibilité, ce dossier a été écrit en 3 parties que nous rappellerons toujours en introduction. S’il s’agit d’un retour d’expérience, c’est aussi un petit guide pour vous aider à bien démarrer sur Android Wear avec Xamarin.
Xamarin & Android Wear (1/3) : Les bases indispensables pour bien démarrer
Xamarin & Android Wear (2/3) : L’apparence visuelle en détails
Xamarin & Android Wear (3/3) : Poser les briques d’une application évoluée

Le contexte applicatif

Dans le cadre du salon European Utility Week (EUW 2014 à Amsterdam), évènement dédié à la domotique et aux usages d’ambiances intelligentes, le client IJenko (dont j’ai déjà pu parler il y a quelques temps dans un article et encore prochainement dans un autre) voulait démontrer que leur solution domotique peut être très accessible et utilisable avec des objets électroniques connectés très récents. Bien plus que cela, leur souhait était de pouvoir interpeller sur l’intégration de ces objets avec la maison connectée. Sur la longue liste de ces objets, ce sont sur la Kinect v2 et la montre Android Wear LG G Watch que leurs choix s’étaient portés.
Parler de ces 2 appareils serait totalement fascinant, dans cet article, nous n’évoquerons que la partie concernant la montre. Afin d’être mieux préparé au sujet, nous allons revoir les termes essentiels à sa bonne compréhension, à savoir, les wearables, la domotique, Xamarin, la domotique et Android Wear.

Les wearables

Lorsque sont évoqués les objets connectés, beaucoup pensent aux wearables. Ce mot, presque sans équivalence en français (ou en plus de mots), est petit à petit entré dans les tendances. Mais qu’est-ce qu’un wearable ? Tout d’abord, le terme “wearable” vient souvent de l’abréviation de l’expression “wearable device” ou “wearable technology“. La traduction la plus serait “smart object”, soit un appareil intelligent, quel qu’il soit, équipé de capteurs ou pas, mais ayant surtout la faculté d’être porté sur soi (plus ou moins facilement…) et avec une certaine intelligence qu’elle soit indépendante ou déportée, ou les 2. On parle ici de smartwatches (montres intelligentes), smartglasses (lunettes intelligentes), smartband (bracelet intelligent), smartshirt (t-shirt intelligent) et etc… L’intérêt de ces objets intelligents est de permettre à celui qui les porte d’accéder à des informations “temps réel”, ou des données traquées quant à son comportement, ses habitudes et faire en sorte que n’importe quel usage habituel devienne plus pratique.
Un exemple concret est de pouvoir contrôler (ou être au courant) des choses depuis sa montre au lieu du téléphone. La LG Watch cadre parfaitement avec ce cas, nous en parlerons un peu plus tard.

La domotique

Faut-il vraiment encore la définir ? Mais pour ceux qui ne saurait pas ce dont il s’agit, c’est un ensemble de techniques qui permet de dématérialiser la gestion des systèmes électroniques de la maison (ou visant à transformer ce qui ne l’est pas vers de l’électronique). Encore plus simple, c’est tout ce qui permettra à votre maison d’être une smarthouse (maison connectée :-)). Mon prochain article après ce dossier y sera entièrement dédié et nous reviendront plus en détails sur ces systèmes.

Xamarin

Est-il là encore nécessaire de présenter Xamarin ? Cyril a déjà eu l’occasion de bloguer un sur le sujet et même d’assurer des formations. Par ailleurs, nombre de meetups ont déjà eu lieu sur cette technologie. Toutefois, s’il fallait résumer en très peu de mots : Xamarin est un environnement/plateforme de développement qui permet de réutiliser ses compétences de développeur C# pour créer des applications natives à destinations de une ou plusieurs plateformes (iOS, Android, Windows Phone, etc…). Si nos compétences C# seront réutilisées à un peu plus de 60/70%, une petite partie du développement nécessite un minimum de connaissance de la plateforme cible (le plus souvent pour l’interface utilisateur, le cycle de vie de l’application, etc…). Même si aujourd’hui des techniques permettent de partager une bonne partie de l’UI (Xamarin Forms), certaines limitations imposent de conserver le développement de l’UI avec le langage de la plateforme cible. Vous souhaitez en savoir plus ou être formé ? Rendez-vous sur notre site et retrouvez l’ensemble de nos formations Xamarin.

Android Wear

Android Wear est le système dont est équipée la montre LG G Watch. Android Wear est une version d’Android spécifique (version 4.4 W) pour les appareils portables à (très) faible puissance (comme c’est le cas des smartwatches). Si le cœur de cette version reste similaire aux autres versions d’Android, elle embarque toutefois des contrôles / api spécifiques dédiés à ces appareils à faible puissance et ce pour plusieurs raisons : très petit écran, écran carré ou rond, gestuels différentes, etc…. Android Wear ne se contente pas d’être un simple miroir de l’OS quant aux notifications des applications mais bien plus encore. C’est un système capable de lancer des applications Android autonomes et de communiquer avec le téléphone. La montre que j’ai choisie était la LG G Watch (la seule disponible au moment où j’ai pu travailler sur le projet et la plus ouverte pour pouvoir travailler sans restriction). Quelques points importants sont à noter :

  • Pour installer une application sur un appareil portable Android Wear, il faudra passer absolument par un appareil (tablette ou téléphone) sous Android 4.3 au minimum (API 18).
  • Il n’est pas possible d’exécuter des requêtes http directement depuis la smartwatch, un pont sera absolument indispensable (une application Android sur un appareil tablette ou téléphone). La communication se fera par des api de communication dont nous parlerons plus tard.

Voilà notre contexte défini, nous sommes prêts à parler de l’environnement technique.

Mise en place de l’environnement de développement technique

Si vous êtes habitués à n’utiliser qu’un environnement de développement différent de Xamarin (ou même aucun environnement de développement), vous allez probablement trouver les étapes à venir fastidieuses. Mais elles sont indispensables pour pouvoir réaliser notre projet.

Installation et configuration de Xamarin

L’installation de Xamarin ne présente pas de difficultés particulières. D’une part, l’équipe de Xamarin a mis en place des tutoriels pour vous accompagner pendant ces étapes, d’autre part, l’installeur Xamarin installe l’ensemble des composants dont on a besoin automatiquement.
Important ! Par défaut, j’avais remarqué sur d’autres machines de travail que Xamarin installait le SDK Android dans des chemins liés au profil utilisateur. J’avais donc pris ce « problème » à l’envers, j’ai d’abord installé le SDK Android sur la partition que je souhaitais, puis, j’ai installé Xamarin qui a automatiquement trouvé mon répertoire d’installation. Je vous recommande de procéder ainsi sauf si l’emplacement du répertoire d’installation du SDK Android vous importe peu. Quand tout est installé, il faut s’assurer que l’ensemble des éléments nécessaires à la création des applications Android Wear est installé. Pour cela, il faut ouvrir Xamarin puis Android SDK Manager et installer la version 4.4W.X d’Android disponible (API 20). Android Wear via SDK Manageril vous faudra également installer les extras ci-dessous ainsi que les outils Android spécifiques à cette version (au moins Android Support Repository, Android Support Library, Google Play Services, Google Repository et Google USB Driver). Android Wear Extras Veillez aussi à ce que les versions des outils du SDK soient à jour pour les plateformes que vous utilisez. android_sdk_tools Et voilà, notre environnement est prêt ! Malgré cela, tous les éléments ne sont pas encore vraiment en place pour créer nos applications de façon optimale. D’autres outils sont nécessaires.

Installation de Android Studio

Je sais, si vous êtes développeurs .NET, vous aurez certainement un blocage et vous demanderez pourquoi installer cet outil qui permet de construire que des applications natives en Java ? J’ai une réponse très simple.
Xamarin n’est pas encore au point pour le design d’interface des applications Android Wear et il est possible de rencontrer quelques bugs avec le design. Si vous êtes comme moi et que vous souhaitez avoir un visuel de votre application dans le designer (afin d’éviter le déploiement systématique de votre application pour vérifier son design), c’est un outil indispensable, léger et assez intuitif. Le guide d’installation est lui aussi clair. Il faudra s’assurer bien entendu que le chemin du SDK utilisé par Android Studio est le même que celui qu’utilise Xamarin (sinon, vous téléchargerez plusieurs fois le SDK Android et diminuerez ainsi l’espace disponible sur votre machine). Quand Android Studio est installé, il est possible de vérifier le chemin du SDK dans File > Project Structure. Android Studio Project Structure

 Les émulateurs

Si vous utilisez Xamarin, vous pouvez installer Xamarin Android Player, mais vous ne pourrez pas l’utiliser pour Debugger votre application Android Wear. En effet, il n’y a que 2 appareils disponibles pour des versions d’Android qui ne supportent pas le système Android Wear. Xamarin Android Player Fort heureusement, il est tout à fait possible de créer des émulateurs Android depuis Xamarin via le menu Tools (Outils) puis Open Google Emulator Manager (Ouvrir le gestionnaire d’émulateurs de Google). Donc, vous aurez au moins 1 image à créer, 1 image d’un appareil sous Android Wear. J’avoue ne pas du tout avoir utilisé l’émulateur Android (que ce soit celui de Xamarin ou celui de Google) pour émuler un appareil Android 4.3 ou 4.4, car je disposais d’appareils physiques. J’avoue d’ailleurs que je préfère déployer sur des appareils réels pour plus de simplicité (et rapidité). Pour créer une image, c’est très simple. Une fois que le Google Emulator Manager est ouvert, il faut se rendre dans la liste de définitions des appareils puis choisir la version de l’appareil que vous souhaitez pour créer votre A(ndroid) V(irtual) D(evices). Android Device list definitions Dans mon cas, j’ai choisi de créer un appareil virtuel pour ma montre LG G Watch même si je dispose de la montre : cela peut s’avérer pratique lorsque votre ultra portable dispose de peu de ports USB.Android Wear AVD creation Notez que lors de la création de l’appareil, il faut veiller à vérifier que la bonne cible de l’OS est sélectionnée mais surtout que le CPU est Android Wear ARM. (cela ne fonctionne pas avec les versions de CPU Intel). Une fois que vous avez créé votre appareil virtuel, vous recevez un message qui vous confirme que c’est bon. Android Wear AVD creation okD’accord, on ne voit pas de “success”, mais je vous l’assure, c’est quand même bon :-). Et en validant sur OK, vous pouvez vérifier que l’appareil virtuel existe dans la liste de vos appareils virtuels Android. Android Wear list devices Vous pouvez aussi utiliser Genymotion pour émuler Android. Il apporte certes un peu moins d’austérité à ce que propose par défaut Google, peut être utilisé avec Xamarin ou encore Android Studio (via des plugins). Toutefois, Genymotion ne propose pas encore de créer une machine virtuelle pour Android Wear au moment ou j’écris ces lignes.

 Le débogage

Configuration des appareils

Il faudra veiller à installer l’application Android Wear sur votre téléphone ou votre tablette. Elle vous permettra de communiquer (bien plus que le simple débogage) avec votre smartwatch, mais également de la mettre à jour. De nombreuses mises à jour peuvent vous être proposées sur votre montre. Si vous n’en avez pas pas fait, soyez donc patients.

Débogage avec des appareils

Si vous disposez de vrais appareils comme j’ai pu en avoir pour ce projet, c’est vraiment l’idéal. Il s’agissait d’un Samsung Galaxy S4 et d’une montre LG G Watch. Si Samsung mets à disposition des drivers pour ses téléphones, LG n’en propose pas. Et si vos appareils ne sont pas reconnus par le système, il sera impossible de déployer vos applications dessus. La procédure la plus courante si vos appareils ne sont donc pas reconnus est la suivante :

  • Ouvrir le gestionnaire de périphérique puis cliquez sur votre appareil non reconnu (en vous assurant que ce soit le téléphone ou la montre) puis sélectionnez l’option permettant de mettre à jour les drivers.
  • Sélectionner l’option pour rechercher les drivers sur l’ordinateur, puis choisir le driver parmi la liste de drivers présents sur l’ordinateur.
  • Choisir Appareil Android (Android Device) puis cliquez sur Suivant.
  • Dans la liste des fabricants, il faut choisir Google puis “Android ADB Interface Version x.x.x.x” (en tout cas la plus récente) puis valider le choix.

Et Windows devrait installer automatiquement le driver (dans le cadre d’une installation sous Windows). Dans mon cas, cette manipulation a été requise uniquement pour la montre. Pour infos, la liste de ces drivers existe grâce à l’option qui avait été sélectionnée lors de l’installation du SDK Android Wear (Google USB Drivers). Une fois cette étape réalisée, il faudra penser à activer le mode Développer sur chaque appareil (le téléphone et la montre). Sur chacun d’entre eux, la manipulation a été similaire : j’ai dû me rendre dans les paramètres de l’appareil, puis, taper 7 fois sur le numéro de Build (et l’option apparait ainsi dans les paramètres).

Conclusion

Voilà, nous sommes arrivés à la fin de cette première partie. Après avoir survolé le contexte applicatif, et mis en place notre environnement de développement, nous allons pouvoir entrer dans le vif du sujet pour pouvoir concevoir notre application Android Wear. Une fois n’est pas coutume, c’est par la partie visuelle que nous commencerons.

Lire la suite : Xamarin & Android Wear (2/3) : L’apparence visuelle en détails

Nombre de vue : 139

COMMENTAIRES 2 commentaires

  1. Très belle entrée en matière ! Je vais lire la suite de ce pas.

  2. […] mon article précédent, nous avons eu l’occasion de poser les bases nécessaires pour la construction d’une […]

AJOUTER UN COMMENTAIRE