Développement Mobile avec React Native et Expo : Le Duo Gagnant

Dimitri Soucanye de Landevoisin
STEAMULO Blog
Published in
4 min readNov 9, 2023

--

Par où commencer

Le développement mobile a connu une véritable révolution au cours de la dernière décennie, avec l’émergence de nouvelles technologies permettant de créer des applications riches et performantes. Parmi les nombreuses options disponibles, RN et Expo se sont imposés comme des choix populaires pour les développeurs d’applications mobiles (des applications telles que Facebook, Tesla, UberEats…). Dans cet article, je vais explorer ces deux technologies, en mettant l’accent sur leurs avantages et leurs différences, et vous aider à comprendre dans quel cas il est préférable de choisir l’une ou l’autre.

React Native : La Puissance de la Personnalisation

RN, développé par Facebook, est une bibliothèque open source qui permet de créer des applications mobiles natives pour iOS et Android en utilisant JavaScript. En partant donc d’un même langage, nul besoin d’avoir deux équipes - une native iOS et une autre Android - le code Javascript est commun pour l’application iOS et Android et fait automatiquement le bridge avec chaque partie native correspondante. L’un des avantages majeurs de RN est sa capacité à créer des applications hautement personnalisées. Vous pouvez accéder directement aux API natives de chaque plateforme et intégrer des composants personnalisés, ce qui en fait un choix parfait pour les applications exigeantes en termes de design et de fonctionnalités. Les performances sont excellentes, car le code JavaScript est compilé en code natif, garantissant une expérience utilisateur fluide.

Projet Expo : La Rapidité de Développement

Expo, quant à lui, est un ensemble d’outils et de services construits autour de RN pour simplifier le développement d’applications mobiles. L’un des principaux avantages d’Expo est la rapidité avec laquelle vous pouvez développer et déployer des applications. Il fournit un ensemble de composants prêts à l’emploi, une interface de ligne de commande conviviale et un système de gestion de projets. Par exemple pour cette dernière, vous pouvez compléter un fichier app.config, qui permettra de configurer votre application à un seul endroit:

export default ({ config }: ConfigContext): ExpoConfig => {
...

return {
splash: {
image: './assets/images/splash-screen.png'
resizeMode: 'cover',
},
orientation: 'portrait',
name: 'myApp',
scheme: 'mySlug',
icon: `./assets/images/appIcon/icon.png`,
version: "1.0.0",
ios: {
userInterfaceStyle: 'light',
bundleIdentifier: `com.mybundle.org`,
googleServicesFile: `./firebase/ios/GoogleService-Info.plist`,
},
android: {
adaptiveIcon: {
foregroundImage: './assets/images/appIcon/icon-adaptive.png',
backgroundColor: '#FFFFFF',
},
userInterfaceStyle: 'light',
googleServicesFile: `./firebase/android/google-services.json`,
package: `com.mybundle.org`,
softwareKeyboardLayoutMode: 'pan',
versionCode: 100000,
}
}
}

Contrairement à un projet RN simple, avec Expo il n’est pas nécessaire d’éditer les parties natives pour configurer votre projet. Cela permet aux développeurs de se concentrer sur la création de fonctionnalités plutôt que sur la configuration et la gestion de l’environnement de développement. Expo propose également un service de déploiement over-the-air (OTA), qui permet de mettre à jour rapidement les applications sans avoir à passer par les app stores.

Différences Clés entre un projet React Native et Expo

Maintenant que nous avons examiné brièvement React Native et Expo, voyons quelles sont les principales différences entre les deux :

1. Personnalisation : RN offre une personnalisation totale, tandis qu’Expo est plus axé sur la simplicité et la rapidité de développement. Si vous avez besoin de contrôle absolu sur l’apparence et le comportement de votre application, RN est la voie à suivre.

2. Dépendance aux services Expo : Expo simplifie le développement, mais vous devez vous appuyer sur les services Expo pour la création, le déploiement et la gestion de vos applications. Avec RN, vous avez plus de flexibilité pour choisir vos propres outils et services. De plus, étant une surcouche au RN, un temps d’adaptation est nécessaire entre une montée de version RN et la disponibilité sur Expo.

3. Taille de l’application : Les applications Expo ont tendance à être plus volumineuses en raison de l’inclusion de certaines bibliothèques et de la surcouche d’Expo. Les applications RN peuvent être plus légères et plus optimisées si vous prenez soin de les développer de manière efficace.

4. Accès aux API natives : RN permet un accès complet aux API natives, tandis qu’Expo limite l’accès à un ensemble restreint d’API pour des raisons de sécurité. Si vous avez besoin d’intégrer des fonctionnalités natives avancées, RN est la meilleure option.

5. Librairies: Expo à réécrit un certain nombre de composants disponibles avec RN, apportant de nombreuses améliorations, par exemple le composant Image n’incluait pas de gestion du cache avant la version 0.72 de RN.

Quand Choisir React Native ou Expo ?

Le choix entre un projet RN avec ou sans Expo dépendra de votre projet spécifique. Si vous avez besoin de créer une application avec des fonctionnalités avancées et personnalisées, et que vous êtes prêt à gérer davantage de détails techniques, un projet nu RN est la solution idéale. D’un autre côté, si vous cherchez à développer rapidement une application avec un budget limité, Expo offre une approche simplifiée du développement, vous permettant de vous concentrer sur la création de fonctionnalités sans vous préoccuper de la configuration de l’environnement.

En fin de compte, la décision dépendra de vos priorités en matière de développement et des besoins spécifiques de votre projet.

Conclusion

Dans cet article, nous avons exploré les avantages de RN et Expo, ainsi que les différences clés entre les deux. En comprenant les forces et les faiblesses de chaque technologie, vous pourrez prendre une décision éclairée pour votre prochain projet de développement mobile. Que vous optiez pour la personnalisation totale de RN ou la rapidité de développement d’Expo, vous avez les outils nécessaires pour réussir dans le monde en constante évolution des applications mobiles.

--

--