Google I/O 2016 : Firebase se positionne comme la relève la plus complète de Parse
Hier soir, s’est tenu la session d’ouverture de la conférence Google I/O 2016. Cette conférence annuelle est destinée aux développeurs et est l’occasion pour Google d’annoncer les nouveautés et les grandes lignes de ses produits pour l’année qui vas suivre.
Cette année, je n’étais pas devant mon écran. Et oui, j’avais un peu plus important : me faire dédicacer par Monsieur Patrick Couton l’ultime volume des annales du Disque-Monde, La couronne du berger. Il y a pourtant un sujet qui me concerne directement, c’est la présentation de Firebase.
Firebase est un service qui intéresse beaucoup les développeurs mobile depuis qu’en janvier dernier, Facebook a provoqué une grande perturbation dans la Force… Enfin, celle des développeurs mobile, en annonçant la fermeture de son service Parse. Dans un billet sur ce sujet, je vous avais indiqué que Firebase était l’alternative directe. Si Firebase offrait un service Baas (Backend as a service) similaire à Parse, il était beaucoup plus limité en fonctionalités, ne proposant qu’une base temps réel, un système d’authentification et un hébergement.
Google, qui a acquis Firebase il y a 18 mois, avait déjà su rebondir sur l’annonce de la fermeture de Parse, mais ils ne se sont pas endormi sur cette occasion et ont enrichi le service. Je ne vais pas lister ici tout ce qui a été dit pendant la présentation de Firebase. L’équipe a publié un post assez complet sur leur blog. Je vais revenir sur ce que j’estime le plus intéressant.
Bien sûr, étant un (futur) ancien utilisateur de Parse, cet article est écrit avec une intention de migration et de retrouver les services dont je disposais sur Parse. Et il faut dire que les nouveaux outils de Firebase présentés à cette I/O sont fait pour convaincre les utilisateurs de Parse. Allez donc voir la fin de l’article 😉
Remote Config
Une difficulté non négligeable pour un développeur mobile est de gérer le paramétrage correcte de son app. Habituellement, les paramètres sont dans un fichier de configuration déployé avec l’app. Mais que se passe-t-il lorsque vous devez changer un de ces paramètres ? De manière la plus basique, il faut déployer une nouvelle version, mais pour que ces paramètres soient actifs, il vous faudra attendre que les utilisateurs aient mis à jour leur app… Vous voyez le problème, vous devez tenir compte des utilisateurs qui tardent à mettre à jour et donc gérer les conséquences.
Remote Config est similaire à la fonctionnalité Config que propose Parse. Il permet de définir dans la console Firebase un ensemble de couples clef/valeur et propose une API pour iOS et Android pour que l’app récupère ces paramètres et vérifie la nécessité de les mettre à jour. Il est évidemment possible de définir un ensemble de paramètres par défaut à déployer avec l’app.
Alors évidemment, vous gérez peut-être cette problématique d’une manière similaire à la main. Après tout, il suffit de définir une structure de données en tant que paramètres et la charger. Oui, mais Remote Config apporte quelques petits plus.
- Vous disposez d’une API, ce qui simplifie le développement et vous évite de perdre du temps à développer toute la partie récupération de données.
- Coté serveur, l’interface est plus agréable qu’une table de données. Petit plus pour Firebase : il est possible non seulement d’attribuer un nom à vos paramètres, mais également un code couleurs, ce qui permet de retrouver des groupes plus facilement.
- Firebase propose de gérer des conditions sur les paramètres. Ça, c’est un plus non négligeable. Ainsi par exemple, pour mon application Alkemy Companion, je dois récupérer des informations en fonction de la langue. Mais dans la pratique, pour des devices en français, je récupère les données en français, et sinon en anglais. Au lieu d’avoir un test dans l’app (ce que je fais jusqu’ici), je n’ai qu’à configurer un paramètre qui retournera le code langue. L’intérêt, c’est que si demain je rajoute une traduction en allemand, il me suffira de rajouter la condition sans avoir à déployer une nouvelle version qui fera le test pour nos amis germanophones.
Remote Config a l’air d’une fonctionnalité secondaire, on arrivait à s’en passer, mais c’est une fonctionnalité très pratique surtout avec la gestion des conditions.
Notifications et Cloud Messaging
Une des raison du succès de Parse est qu’en plus d’être un Baas, c’est un service de Push. D’autres services existent et Google n’entend pas perdre ce terrain. Notifications sert, comme son nom l’indique, à envoyer des notifications en push. Je n’ai pas eu à me servir de ce service via Parse, mais la version Firebase me semble très similaire pour notifier les utilisateurs.
Analytics et Crash report
Une fois déployée, nos apps sont sur les terminaux des utilisateurs, mais nous souhaitons avoir un petit retour sur leur utilisation. Il y a deux informations qui nous intéressent : la qualité (limiter les crashs) et l’usage. Ces deux outils, Analytics et Crash Report vont nous aider à y voir un peu plus clair.
Bien sûr, vous utilisez peut-être une autre solution, mais si ce n’est pas le cas et que vous utilisez Firebase, ce dernier fournit les outils pour que vous ayez le suivi de vos apps.
Pour le reste, je vous invite à consulter le billet du blog de l’équipe de Firebase. Sachez aussi que dans la documentation, vous avez une nouvelle partie intitulée Migration depuis Parse avec une section pour Android et une pour iOS. Il est intéressant de voir que e document couvre aussi bien la base de données que Analytics, Remote Config, les Notifications…
Lorsque Facebook a annoncé l’arrêt de Parse, de nombreux fournisseurs de services ont mis en avant leur service pour s’attirer de nouveaux utilisateurs. Mais il est évident que depuis janvier, l’équipe de Firebase a travaillé pour fournir tous les outils attendus par les utilisateurs de Parse, offrant ainsi l’alternative la plus complète.
Développeurs qui utilisiez Parse, Firebase est-il le service vers lequel vous allez migrer ?
À propos de... Darko Stankovski
iT guy, photographe et papa 3.0, je vous fais partager mon expérience et découvertes dans ces domaines. Vous pouvez me suivre sur les liens ci-dessous.