Articles
Aug 28, 2024

Expo : le Next JS du mobile

Découvrez pourquoi j'ai adoré Expo

Expo : le Next JS du mobile

Sortant de plus d'un an de développement mobile pour une startup nantaise qui fabrique des radiateurs connectés minant de la crypto, j'ai eu l'opportunité de travailler sur un projet React Native à forte valeur ajoutée.

Pour réaliser cette application, j'ai choisi le framework Expo. Ayant déjà testé Expo il y a quelques années, j'étais loin de me douter à quel point il avait évolué.

Expo n’est plus seulement un framework, mais un outil ultra complet qui va vous faire gagner des mois de développement.

https://expo.dev/

Dans cet article, nous explorerons certaines fonctionnalités et avantages d'Expo qui rendent le développement mobile plus rapide et plus efficace.

Croyez le bien, il s'agit que d'une infime partie de ce qu'Expo peut vous permettre de faire. 

1. Un Router façon Next.js 13

L'une des grandes améliorations apportées à Expo est son système de routage inspiré de Next.js 13. Ce router fournit une structure de fichiers claire et logique, rendant la navigation au sein de l'application plus intuitive. Il facilite la gestion des routes dynamiques, des navigations imbriquées et des redirections, tout en maintenant un codebase propre et aisément maintenable. Il intègre également le même système de layout que Next. Je n'étais donc pas dépaysé ayant beaucoup pratiqué NextJS.

Voyez plutôt :

Structure du dossier app/

2. Développer en local avec Expo

Là c'est un vrai bonheur. Expo facilite vraiment la vie.

Lorsque vous lancez votre app en local avec npm start, Expo vous donne un QR code à flasher avec n'importe quel mobile ayant téléchargé Expo GO. (Petite config préalable pour les iphones)

Toutes vos modifs de code s'appliquent en temps réel sur tous les devices ayant flashé ce qr code. Quel gain de temps !

Vous pouvez également facilement lancer des émulateurs Android ou simulateurs IOS. Le rendu est fidèle au device réel, donc pas forcément utile de gérer une flotte de téléphones physiques.

3. Builds de test

Expo facilite la création de builds de test et de distribution interne. Vous pouvez générer des builds pour différents environnements (test, production) directement à partir de la CLI d'Expo. Les builds peuvent être distribués en interne pour le test par les membres de l'équipe avant d'être déployés en production.

Expo permet également de pointer directement vers des branches spécifiques de votre dépôt depuis l'application Expo GO, facilitant ainsi les tests et la collaboration entre les développeurs.

4. CI/CD avec Expo

Concept de Branches et de Channels

Expo adopte un concept de branches et de channels pour simplifier l'intégration continue (CI) et le déploiement continu (CD).

Les branches sont mises à jour en même temps que vos branches git. Et se déploient automatiquement sur EAS.  Vous pouvez même lancer une app pointant sur un commit en particulier juste en flashant un code fourni dans le dashboard.

Les channels permettent de lier un build (devIOS, devAndroid, prodIos, prodAndroid par exemple) avec une branche. Cela permet de gérer les mises à jour de façon précise par branche et par build.

5. Déploiement avec Expo Updates

Expo Updates permet de déployer des mises à jour d'applications directement à partir des serveurs d'Expo. La fonctionnalité de rollout partiel est particulièrement puissante car elle permet de déployer progressivement des mises à jour à un pourcentage limité d'utilisateurs. Vous pouvez surveiller les performances et les retours avant de déployer la mise à jour à l'ensemble des utilisateurs.

Vous pouvez ici faire pointer seulement un certains pourcentage d'users qui ont le build de prod vers la branch de release avant que celle ne soit définitivement mergée en prod.

En conclusion, Expo est devenu bien plus qu'un simple framework de développement mobile. Avec ses outils sophistiqués et ses capacités de gestion de projet intégrées, Expo permet de réduire les délais de développement et de simplifier la gestion des mises à jour, rendant le processus de développement mobile plus efficace et moins stressant. Que vous soyez un développeur solo ou que vous travailliez au sein d'une équipe, Expo est un choix solide pour vos projets React Native.