Analyser votre application avec Firebase

Lors du développement de votre application mobile, vous allez développer un certain nombre de fonctionnalités. Même en étant rigoureux, quelques bugs peuvent vous échapper. Bien sûr, les tests unitaires que vous avez pensé à écrire pendant le développement vous ont donné l’occasion d’éviter toute régression. Et pourtant, en production, il y a un bug. Celui-ci ne plante pas l’application mais cela risque d’altérer plus ou moins gravement l’expérience de l’utilisateur…

Dans un autre scénario, vous pensez avoir développé le meilleur produit du marché, celui-ci dispose d’une bonne quarantaine de fonctionnalités que vous utilisez très régulièrement. Cependant lors d’une discussion à la machine à café, vous vous rendez compte que Monique, votre première utilisatrice n’utilise qu’un fragment de votre travail.

Dans les deux cas, existe-t-il une bonne façon de découvrir un bug ? Ou encore, comment savoir quels sont les fonctionnalités à améliorer ou dont vous souhaitez connaître le taux d’utilisation ? Eh bien oui, il est possible de connaître ces informations, et il y a plusieurs outils sur le marché. On va cependant se pencher sur l’un d’eux en particulier : Firebase.

 

Firebase c’est quoi ?

Alors, avant toute chose revenons sur ce qu’est Firebase.

Firebase est une plateforme développée par Google qui centralise de nombreux outils comme l’Authentification d’utilisateur, la gestion de base de données, les Api, les données liées à la publicité (gérées par AdMob), la prédiction, la gestion de notifications des utilisateurs, la configuration à distance des applications, la création de liens dynamiques, ou tout simplement l’analyse de données de votre application par de nombreux biais.

La gestion se fait par projet et il est possible de coordonner plusieurs applications ensemble, qu’elles soient iOS, Android ou Web… et c’est tout. Rien pour Windows sur cette plateforme.

La partie mobile (celle-ci fournit de nombreuses données) qui est connectée à l’application donne les informations suivantes :

  • Utilisateurs actifs
  • StreamView (utilisateurs actifs en temps réels)
  • Taux de conversion (avec les inApp Purchase)
  • Durée d’interaction par utilisateur
  • Chiffre d’affaires (publicité + inApp)
  • Taux de stabilité de l’application
  • Niveau d’adoption par version
  • Source d’acquisition des utilisateurs
  • Cohortes de fidélisation (combien de pourcentage d’utilisateurs restent au fur et à mesure des semaines)
  • Zone géographique des utilisateurs
  • Crash Reporting (avec le détail des erreurs, le nombre de problèmes différents et le taux sur 24 heures/48 heures/7 jours/30 jours/6 mois)
  • Événements.

Toutes ces informations peuvent ainsi permettre d’obtenir une vision globale de l’application et permettent d’anticiper les finances, les prochaines fonctionnalités à développer, la viabilité d’un projet ou d’une partie de celui-ci et surtout de gagner du temps.

 

Commencer avec Firebase

Pour tous les projets, qu’ils soient en langage natif ou en C# avec Xamarin, il faut vous assurer d’avoir un compte sur Firebase et de créer un projet dessus.

créer un projet avec firebase

Ensuite, ajoutez votre application cible dans les paramètres du projet. Sachez que pour Android ou iOS, l’étape est la même.

Ajouter Firebase à votre application iOS

Téléchargez le « google-service.json » pour Android ou.plist pour iOS. Ajoutez le fichier à votre projet. Dans l’exemple ci-dessous, j’utilise un projet Xamarin.Forms mais sachez qu’il s’agit de la même chose pour Xamarin Natif. Pensez également à mettre les packages nugget Firebase Analytics dans votre projet natif.

google-service.json

Passez également le « Build Action » des fichiers en « GoogleServicesJson » pour Android et en Bundle Ressources pour iOS. En ce qui concerne le build action d’Android, il faudra peut-être redémarrer le projet pour le voir apparaître. Enfin sur iOS, changez la valeur « IS_ANALYTICS_ENABLE » à « YES » dans le « GoogleServices.plist ».

 

Enfin, pour terminer la configuration, rendez-vous dans le AppDelegate.cs sur iOS et placez la ligne de code suivante dans le FinishedLaunching :

Firebase.Core.App.Configure();

Du côté d’Android, dans la MainActivity, placez une propriété publique qui sera ensuite initialisée dans le OnCreate :

public FirebaseAnalytics FirebaseAnalytics { get; set; }

Et dans le OnCreate :

FirebaseAnalytics = Firebase.Analytics.FirebaseAnalytics.GetInstance(this);

Démarrez ensuite votre application, le résultat sera disponible en quelques minutes sur le board de Firebase.

 

Les Events avec Firebase

Les events, qui permettent de visualiser le parcours global des utilisateurs, sont une fonctionnalité très utile dans leur secteur. Ils peuvent donner des infos sur la viabilité ou le taux d’utilisation d’une fonctionnalité.

Les Events avec Firebase

Ceci est le résultat d’un événement sur un ViewModel « GameViewModel » qui dispose d’une méthode Start. N’ayant pas grand-chose sur cet exemple, j’ai simplement écrit « None ».

Cela me permet de savoir quel endroit de l’application agit, quelle méthode et avec quel paramètre. L’implémentation est plutôt simple, pour faciliter son développement je développe un service autour de celui-ci :

iOS

public void LogEvent(string pageName, string titleName, string subjectName)
{
NSString[] keys = { new NSString(subjectName) };
NSObject[] values = { new NSString(titleName) };
var parameters = NSDictionary<NSString, NSObject>.FromObjectsAndKeys(keys, values, keys.Length);
Analytics.LogEvent(pageName, parameters);
}

 

Android

private FirebaseAnalytics _firebaseAnalytics;

public BaseAnalytics()
{
_firebaseAnalytics = FirebaseAnalytics.GetInstance(MainActivity.Context);
}

public void LogEvent(string pageName, string titleName, string subjectName)
{
var parameters = new Bundle();
parameters.PutString(FirebaseAnalytics.Param.ItemId, titleName);
parameters.PutString(FirebaseAnalytics.Param.ItemName, subjectName);
_firebaseAnalytics.LogEvent(pageName, parameters);

}

Et c’est tout, le résultat est accessible directement au travers de la « StreamView » du Dashboard pendant le développement de l’application ou au travers de la « DebugView » de Firebase. Les Events sont ensuite disponibles avec la vue « Event » après 24h. Cette vue regroupe tous les événements créés par Firebase en comptant les exceptions, les démarrages, les mises à jour, les suppressions et publicités.

Vous disposez désormais d’un outil puissant capable d’analyser en profondeur vos applications et de sortir des chiffres utiles pour faire évoluer votre App mobile. Firebase est le premier sur le marché mais n’est pas le seul. Il est rejoint par AppCenter (Anciennement MobileCenter) qui permet lui aussi d’analyser les applications mais aussi de gérer leur distribution et sur un scope plus large, puisqu’il ajoute les applications Windows et MacOS. Les deux outils sont d’ailleurs compatibles pour gérer la distribution d’un côté et l’analyse de l’autre.

 

Livre Blanc Cell'insight 5 Xamarin