Introduction

visual studio mobile center logoDepuis quelques années Microsoft propose des outils DevOps qui facilitent le cycle de vie de nos applications, qu’elles soient dans le domaine du mobile, du web, etc. On entend souvent parler de Visual Studio Team Services, mais un nouvel acteur est entré en jeu; si vous avez suivi l’actualité de Microsoft en fin d’année 2016, vous aurez donc sans doute entendu parler de ce nouvel outil, Visual Studio Mobile Center ! Cet article fera un tour d’horizon de la plateforme Visual Studio Mobile Center, qui comme son nom l’indique est pensée pour une application mobile.

Petit historique

C’est en novembre 2016, lors de l’évènement Microsoft Connect qu’a été annoncé en grande pompe Visual Studio Mobile Center. Le but de cette plateforme ? Regrouper à un seul endroit les fonctions de build, tests, reporting, ainsi que la gestion d’outils tels que les Azure Tables ou serveurs d’identité.

visual studio mobile center developer lostCe service arrive après différentes annonces au cours de ces deux dernières années concernant des outils ou technologies mobile. Cela a commencé avec le rachat de HockeyApp en 2015, Xamarin en 2016, la fusion entre Xamarin Insights et HockeyApp… Autant de noms pour des outils différents, chacun s’occupant d’une brique précise dans la démarche DevOps.

Pour rappel, HockeyApp permettait de gérer les bêtas d’applications Android, iOS ou Windows Phone. Cet outil rapatriait également des informations des applications telles que les crashs. On pouvait compléter ces informations avec Xamarin Insights (un équivalent d’Application Insights en plus light pour Xamarin). Pour les tests UI il fallait basculer sur la plateforme Xamarin Test Cloud… Autant dire qu’il était facile de se perdre dans tout ça.

 

La petite révolution que veut apporter Mobile Center permettrait d’avoir plus de clarté dans la gestion et l’analyse de son application.

Mais si Visual Studio Mobile Center est sorti fin 2016, pourquoi en parler seulement aujourd’hui ?visual studio mobile center elementary

Eh bien, c’est élémentaire mon cher Watson ! Laissez-moi vous éclairer sur cette affaire, et pour cela prenons le cas d’une application Xamarin. Jusqu’à présent la solution la plus simple (et d’ailleurs fortement conseillée) était l’utilisation de l’ensemble de Visual Studio Team Services (VSTS) pour appliquer les principes du DevOps. Ainsi, la plupart de nos applications se sont retrouvées intégrées dans VSTS, qui héberge le code source. Or, à la sortie de Mobile Center et ce jusqu’à il y a quelques jours, il n’était pas possible d’intégrer un projet hébergé sur VSTS à Mobile Center. Certes, il était possible d’intégrer un projet GitHub, mais j’aurai personnellement trouvé cela dommage d’écrire un article sur une plateforme Microsoft qui ne s’intègre pas avec les autres services Microsoft ! Heureusement, ce frein est désormais levé depuis quelques jours.

Création de l’application

Avant d’utiliser les fonctionnalités de Visual Studio Mobile Center, il faut passer par l’étape de création d’une application. C’est grâce à un bouton accessible depuis la page d’accueil qu’un volet s’ouvre pour laisser plage à la configuration. Les champs à renseigner sont peu nombreux et sont composés d’un nom, d’une description optionnelle, d’un propriétaire, d’un OS et d’une plateforme.

Aujourd’hui les OS supportés sont iOS et Android, avec une arrivée prochaine pour Windows. Concernant les plateformes, les possibilités vont du natif (Objective-C/Swift ou Java) à Xamarin, sans oublier React Native.

Une fois les choix validés, l’application est créée et nous sommes redirigés vers une page de démarrage. Celle-ci propose des instructions pour intégrer le SDK à l’application, ainsi que l’accès aux services.

visual studio mobile center create app

Le build

Nous rentrons dans le vif du sujet avec ce premier menu, qui permet de lancer un build de l’application de façon automatique ou manuelle.

La première étape sera de choisir le service hébergeant le projet souhaité : GitHub, BitBucket ou VSTS. Ce choix fait, la liste des projets disponible s’affiche, et après sélection du projet il faut choisir la branche sur laquelle effectuer le build.

La suite consiste à configurer la branche avec le fichier du projet et choisir la configuration cible (Debug ou Release). Nous devons également choisir si on souhaite automatiser le build en le déclenchant à chaque push. Le reste des options concernent l’automatisation des fonctionnalités présentées ci-après, le lancement automatique des tests UI, ainsi que la distribution automatique. A noter que pour la distribution, une signature du package est obligatoire… Sinon le package ne peut pas s’installer sur un téléphone !

visual studio mobile center build

visual studio mobile center continuous

Le test d’interfaces

Cette fonctionnalité tire parti de plateformes déjà existantes telles que Xamarin Test Cloud, Calabash, Appmium ou Espresso, sans avoir l’inconvénient de changer d’onglet dans un navigateur. Ici tout est regroupé pour faciliter la gestion des tests UI.

Si on souhaite lancer une session de tests UI, il faut commencer par choisir le ou les périphériques (iOS ou Android) sur lesquels les tests seront exécutés. La flotte des périphériques disponible est très grande et bénéficie de plusieurs versions d’OS possibles, de tailles différentes, etc. Il est même possible de filtrer les téléphones avec une certaine mémoire ou avec un CPU précis. Une fois le dilemme des téléphones résolu, il faut ensuite configurer la branche concernée par les tests, le langage pour lequel les tests sont prévus, et enfin le framework de test.

La dernière partie de configuration variera selon le framework de test choisi. Un ensemble d’instructions expliquera comment soumettre les tests à la plateforme, avec les options retenues précédemment.

visual studio mobile center ui tests

La distribution

La distribution de l’application est très simple et se gère de deux façons différentes :

  • On peut uploader directement le package de l’application (préalablement signé en local) et le rendre disponible pour un groupe de distribution.
  • On peut automatiser la distribution à la fin d’un build réussi. Il faut dans ce cas-là repasser par le menu de Build, modifier le build souhaité, activer l’option, ajouter les fichiers qui permettent de signer l’application, et sélectionner le groupe cible.

Suite à la distribution d’un nouveau package, les testeurs concernés recevront un mail contenant un lien permettant de télécharger l’application.

visual studio mobile center distribution

Evidemment, le système de distribution derrière n’est autre que HockeyApp, mais cela reste transparent pour le bêta testeur.

Les tables

Sous la fonctionnalité des tables se cache en réalité le service Azure Table Storage, qui permet une création très simplifiée d’un backend pour une application mobile.

Attention : pour commencer à utiliser ce menu, il est à noter qu’une souscription Azure est nécessaire. Si vous possédez une souscription Azure, vous pouvez donc profiter de la création d’un backend, qui exposera des données pouvant être exploitées aisément depuis une application.

Cette facilité d’utilisation est entre autre permise grâce au SDK Azure Mobile Apps, disponible par exemple via NuGet.

L’identité

Attention (encore !) : Tout comme la fonctionnalité précédente, celle-ci n’est exploitable qu’avec une souscription Azure.

Dans ce menu, on retrouve la mise à disposition de plusieurs connecteurs pour l’authentification d’un utilisateur sur l’application, telles que Facebook, Twitter… Pour chaque fournisseur d’identité, une documentation est disponible sur le site de Microsoft afin de configurer celle-ci.

Les crashs

Tout comme son nom le laisse présager, le menu des crashs offre la possibilité de collecter un très grand nombre d’informations lorsque notre application plante. Si vous êtes familier avec HockeyApp, l’interface est sensiblement la même, et le fonctionnement relativement identique.

A chaque crash de l’application, et si celle-ci a été configurée pour, des données telles que l’exception responsable du crash, la stack trace, la version de l’OS, etc. seront remontées sur la page dédiée dans Mobile Center.

Analytics

Cette dernière fonctionnalité de Visual Studio Mobile Center se concentre sur l’analyse de données globales à une application. Elle est scindée en trois sous-menus, “Audience”, “Events” et “Log flow”. L’audience centralise les données générales, telles que le nombre d’utilisateurs actifs, les téléphones ou encore les pays sur lesquels l’application est installée. Le sous menu des évènements affiche un ensemble d’évènements définis dans le code de l’application, qui sont ensuite traqués. Par exemple on peut voir lorsqu’une navigation vers une page de l’application a été lancée par un utilisateur. Enfin, le déclenchement de ces évènements sont consignés dans l’ordre correspondant dans la section des logs.

visual studio mobile center analytics

Pour finir

Cet article a fait un rapide tour des fonctionnalités offertes par Visual Studio Mobile Center. S’il n’est aujourd’hui pas nécessaire de migrer des projets déjà en place dans VSTS (avec des pipelines de build et release déjà bien huilés), il est intéressant tout de même de se pencher sur ce service que Microsoft met régulièrement en avant et ne cesse de mettre à jour pour satisfaire les besoins des développeurs natifs aussi bien que cross-platform.