17 mars 2025
Firebase et le développement mobile : un couple gagnant ?
Il y a un point commun à la plupart des success stories modernes : leur réussite n'est presque jamais le fruit de ce pourquoi elles étaient conçues au départ.
On pense immédiatement à Amazon, qui a débuté en tant que petite librairie sur le Web. Moins connu, le logiciel Slack devait être un jeu vidéo - pas terrible manifestement. Mais à l’intérieur du jeu, il y avait un petit chat interne bien conçu … et on connaît la suite.
Firebase ne déroge pas à la règle.
Initialement prévu pour être une plateforme de synchronisation des données en temps réel à sa création en 2011, Firebase est aujourd’hui une plateforme complète de développement d’applications mobiles et web, qui offre une gamme de services backend (on parle de Backend-as-a-Service) permettant de gérer beaucoup plus facilement de nombreuses fonctionnalités via le cloud Google. Aujourd’hui, le Figaro, Twitch ou encore Alibaba utilisent les fonctionnalités de Firebase.

© Firebase
Cloud? BaaS? Késako ?
Pourquoi utiliser le cloud ?
Historiquement, une entreprise achète un serveur physique ou virtuel et y déploie des applications qu’on doit au préalable configurer pour ce serveur. Cela engendre des problématiques complexes comme celle du stockage :
- si on en prend un trop petit, il faut logiquement prendre un serveur plus grand et recommencer toute la configuration ;
- à l’inverse, si c’est trop grand, ça veut dire qu’on paye plus que ce qu’on devrait.
Le cloud résout ce problème.
En effet, il s’agit d’un ensemble de serveurs et d’ordinateurs situés quelque part dans le monde (le plus souvent dans des data center). L’entreprise va louer une partie de ces serveurs au fournisseur. Ainsi, le cloud permet aussi aux entreprises de s'adapter facilement à la demande.
Le principe de BaaS
Un BaaS ou Backend-as-a-Service est un ensemble de solutions qui permet aux développeurs de gérer des problèmes récurrents, comme l’authentification d’une application ou encore la gestion de fichiers ou les notifications dans le cas d’une application mobile.
Prenons l’exemple de l’authentification (que propose également Firebase), si l’on peut tout à fait gérer cette feature à la main soi-même, il va falloir:
- gérer une base de données avec ses utilisateurs ;
- s’assurer de la sécurité des informations confidentielles (penser à crypter les mots de passe dans la base …) ;
- développer une API qui permet d'interagir entre la base de données et l’application en gérant la partie chiffrement/déchiffrement ;
- développer la partie authentification avec les tiers (Google, Facebook, LinkedIn...) en utilisant les librairies fournies par ces géants du web ;
- maintenir tout ce système en mettant à jour les librairies utilisées.
Tout ceci pour une fonctionnalité standard dont on aura besoin dans la plupart des applications.
Le fait d’utiliser un BaaS va libérer du travail pour les développeurs et leur permettre de se concentrer sur une partie business avec plus de valeur ajoutée.
Quelles fonctionnalités ?
Base de données NoSQL (Firestore)
Firestore est une base de données non-relationnelle qui fonctionne comme MongoDB avec des collections et des documents. Elle est entièrement gérée dans le cloud et la charge de sa maintenabilité n’est pas à la responsabilité des développeurs. Elle s’intègre parfaitement avec les autres fonctionnalités de Firebase. Enfin, elle est particulièrement adaptée au développement mobile. Elle gère nativement (sans développement supplémentaire) le mode hors ligne. C'est-à-dire que les données sont stockées sur le téléphone le temps que l’utilisateur soit à nouveau connecté à internet. C’est à ce moment là que la synchronicité se fait et que les données sont transmises à Firestore.
Firebase Cloud Functions
Une cloud function, que ce soit dans Firebase ou Google Cloud Platform (GCP), est un bout de code qui peut s'exécuter automatiquement lorsqu'un événement se produit.
Voici un exemple simple : quand un utilisateur téléverse une image, et qu’elle est trop grosse, elle risque de prendre trop d’espace dans notre système de stockage. On peut écrire et déployer une cloud function qui va se déclencher à chaque téléversement d’images et faire une compression selon un algorithme spécifique. Implémenter cette fonctionnalité dans l’application sans passer par une cloud function serait une erreur d’architecture car ce sont des tâches assez gourmandes en ressources et il n’y a pas d'intérêt à ce que les téléphones des utilisateurs soient directement sollicités ainsi.
Firebase App Distribution
Le déploiement d’application mobile est un sujet très complexe. Une fois l’application terminée, il faut la publier sur l’App Store (Apple) et ou le Play Store (Android). Dans un procédé agile, il nous faut la validation des clients et il peut sembler difficile de leur dire de télécharger sur le store la version 2.6.15B pour qu’ils bénéficient en avant première des nouvelles fonctionnalités. Firebase App Distribution permet de résoudre ceci efficacement. Ce service permet d'envoyer des versions de test aux utilisateurs de manière sécurisée et rapide, sans avoir à passer par les stores d'applications.

En résumé
Firebase permet une meilleure scalabilité, en plus de l'automatisation d'un certain nombre de process qui se verront facilités grâce aux bénéfices du cloud.
Qu'en est-t-il des ressources financières à prévoir pour en bénéficier ?
Pour se faire une idée, nous estimerons dans notre prochain article le coût de la solution Firebase dans le cas d'une application de météo en temps réel.
Des projets de développement mobile? Des interrogations sur les technologies à utiliser? Discutons-en !
Image de couverture : abillion sur Unsplash, modifiée par Goweb.