Utiliser React Native et Expo pour concevoir des applications mobiles
Publié le 31 octobre 2023
Jam est une jeune entreprise de l’économie sociale et solidaire dont le projet est d’aider les associations dans leurs collectes de dons, grâce à des partenaires engagés et une implication plus régulière et communautaire des donateurs (jameurs). Pour appuyer les équipes de street marketing et élargir leur audience, Jam a mis en place une application mobile qui facilite le paiement des dons et permet aux jameurs de bénéficier aisément des avantages (promotions, consommations offertes etc) proposés par les partenaires.
Les choix architecturaux
C’est forts d’une expertise de plusieurs années dans le développement d’applications mobiles (Hakisa, Citiz…), de la conception à l’hébergement en passant par l’API, que nous avons entrepris de répondre aux attentes de JAM. Pour ce faire, nous avons décidé d’utiliser une architecture dont les deux piliers sont Expo pour la partie app native et API Platform pour l’API et l’interface d'administration. Pour construire un back office efficace, nous nous sommes appuyés sur API Platform Admin (une bibliothèque React basée sur React-Admin permettant de créer en quelques minutes de puissants tableaux de bords et interfaces d’administrations. API Platform Admin fonctionne avec n’importe quelle API REST ou GraphQL (même si elle n’utilise pas le composant serveur de API Platform).
Nous avons également utilisé Stripe pour construire un tunnel de paiement personnalisé complexe. Stripe propose de nombreux outils efficaces et adaptés à différents écosystèmes mais qui n’étaient pas ici suffisants pour répondre aux spécificités des besoins métiers (don ponctuel et système d’abonnement par prélèvement SEPA vers des comptes connectés, intégration des interfaces de paiement avancées dans Expo…). Heureusement, nos équipes mobile et PSP ont rapidement et aisément franchi ces embûches !
Expo, en plus de proposer des fonctionnalités et plusieurs bibliothèques très utiles (notamment son routeur et son système de notifications, ou encore la soumission automatique aux stores) fonctionne sur divers environnement de développement, comme des émulateurs, qui permettent aux développeurs comme aux clients de tester en temps réel les développements de l’application. Expo propose aussi Expo Go, une application qui permet de créer des builds pouvant être installés directement sur de vrais smartphones et ainsi voir exactement ce que verront les utilisateurs finaux des apps.
Un déploiement continu optimisé
Nous avons également mis en place un processus de déploiement continu (CD) automatisé avec GitHub Actions et Release Please, qui, couplés aux outils dédiés d’Expo et aux compétences de nos SRE, nous permet de créer des builds de production à chaque étape du développement et de les tester dans un environnement de production. L’utilisation optimale de ces outils et le savoir-faire de nos équipes de développement ont abouti à la sortie d’un MVP en moins de 3 mois.
Si le projet de Jam Solidaire vous intéresse et que vous souhaitez avoir un aperçu plus complet de notre travail, n’hésitez pas à aller tester l’application et à faire un don aux associations. N’hésitez pas non plus à faire appel à Les-Tilleuls.coop pour la conception de votre prochaine appli native !