54 votes

Quelle est la différence entre Expo CLI et React Native CLI ?

React Native propose deux façons de créer un projet.

Premièrement :

npm install -g expo-cli

Deuxièmement :

npm install -g react-native-cli

Quelle est la différence entre les deux et qu'est-ce qui doit être utilisé si nous créons une application react native ?

152voto

Syed Points 1759

React Native init :

Avantages :

  • Vous pouvez ajouter des modules natifs écrits en Java/Objective-C (probablement la caractéristique la plus forte).
  • Vous aurez le contrôle sur les constructions.

Inconvénients :

  • Nécessite Android Studio et XCode pour exécuter les projets
  • Vous ne pouvez pas développer pour iOS sans avoir un Mac
  • L'appareil doit être connecté via USB pour être utilisé pour les tests.
  • Les polices doivent être importées manuellement dans XCode
  • Si vous souhaitez partager l'application, vous devez envoyer le fichier .apk / .ipa complet.
  • Ne fournit pas d'API JS d'emblée, par exemple Push-Notifications, Asset Manager, elles doivent être installées manuellement et liées avec npm par exemple.
  • La mise en place d'un projet fonctionnel (y compris la configuration des appareils) est assez compliquée et peut prendre du temps.

Expo :

Avantages :

  • La mise en place d'un projet est facile et peut se faire en quelques minutes.
  • Vous (et d'autres personnes) pouvez ouvrir le projet pendant que vous y travaillez.
  • Le partage de l'application est facile (via un code QR ou un lien), il n'est pas nécessaire d'envoyer le fichier .apk ou .ipa complet.
  • Aucune compilation n'est nécessaire pour exécuter l'application
  • Intègre quelques bibliothèques de base dans un projet standard (Push Notifications, Asset Manager,...)
  • Vous pouvez l'éjecter vers ExpoKit et intégrer du code natif en continuant à utiliser certaines des fonctionnalités d'Expo, mais pas toutes.
  • Expo peut créer des fichiers .apk et .ipa (distribution aux magasins possible avec Expo)

Inconvénients :

  • Il n'est pas possible d'ajouter des modules natifs (ce qui change probablement la donne pour certains)
  • Vous ne pouvez pas utiliser des bibliothèques qui utilisent du code natif en Objective-C/Java.
  • L'application standard Hello World pèse environ 25 Mo (en raison des bibliothèques intégrées).
  • Si vous souhaitez utiliser : FaceDetector, ARKit o Paiements vous devez l'éjecter vers ExpoKit
  • L'éjection vers ExpoKit implique un compromis sur les fonctionnalités d'Expo, par exemple l'impossibilité de partager via un code QR.
  • Lors de l'éjection vers ExpoKit, vous êtes limité à la version native de react qui est prise en charge par ExpoKit à ce moment-là.
  • Le débogage dans ExpoKit (avec des modules natifs) est beaucoup plus compliqué, car il mélange deux langues et des bibliothèques différentes (il n'y a plus de support officiel d'Expo).

Vous pouvez utiliser n'importe lequel d'entre eux pour répondre aux exigences de vos applications.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X