web-dev-qa-db-fra.com

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

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

Premier:

npm install -g expo-cli

Deuxième:

npm install -g react-native-cli

alors, qu'est-ce qui est différent entre eux et qu'est-ce qui devrait être utilisé si nous créons une application native React?

19
Jitendra Suthar

React Native init:

Avantages:

  • Vous pouvez ajouter des modules natifs écrits en Java/Objective-C (probablement la fonctionnalité la plus puissante)
  • Vous contrôlerez les versions.

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 l'utiliser pour les tests
  • Les polices doivent être importées manuellement dans XCode
  • Si vous souhaitez partager l'application, vous devez envoyer l'intégralité du fichier .apk/.ipa
  • Ne fournit pas d'API JS prêts à l'emploi, par ex. Push-Notifications, Asset Manager, ils doivent être installés manuellement et liés avec npm par exemple
  • Mettre en place un projet de travail correctement (y compris la configuration de l'appareil) est assez compliqué 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 QR-code ou lien), vous n'avez pas à envoyer l'intégralité du fichier .apk ou .ipa
  • Aucune construction 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:

  • Vous ne pouvez pas ajouter de modules natifs (probablement un gamechanger pour certains)
  • Vous ne pouvez pas utiliser des bibliothèques qui utilisent du code natif dans Objective-C/Java
  • L'application Hello World standard mesure 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'éjecter dans ExpoKit a un compromis entre les fonctionnalités d'Expo, par ex. vous ne pouvez pas partager via QR code
  • Lors de l'éjection vers ExpoKit, vous êtes limité à la version native de réactivité 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 différentes bibliothèques (plus de support officiel d'Expo)

Et vous pouvez en utiliser un qui réponde aux exigences de vos applications

61
Syed