1

Actually, I am a beginner to react-native as per my knowledge there are two options for me to install react native that is react-native CLI and Expo CLI. I am confused about which is better for beginners for installation and usage of React Native app development and which has more support for beginners

Kartikey
  • 4,516
  • 4
  • 15
  • 40
Belgin Android
  • 309
  • 5
  • 19
  • basically you can use both i started with React native only but when I got to know expo - whenever I need to develop an app i use expo because it is easier to setup and get your simulator running - also there is much that the expo team does / implements for you. – yesIamFaded Apr 06 '20 at 14:00
  • 1
    @yesIamFaded Thank You Sir For Your valuable information and also which one is the best recomended one for beginners ( By you ) – Belgin Android Apr 06 '20 at 14:13
  • Does this answer your question? [What is the difference between Expo and React Native?](https://stackoverflow.com/questions/39170622/what-is-the-difference-between-expo-and-react-native) – Ben Butterworth Apr 06 '20 at 15:54
  • @BelginAndroid u can definitly go with expo, if you at some point need to you can always eject. – yesIamFaded Apr 07 '20 at 08:49

2 Answers2

13

React Native CLI:

Advantages:

  • You can add native modules written in Java/Objective-C, so you have full control of your application.

Disadvantages:

  • Needs Android Studio and XCode to run the projects

  • You can't develop for iOS without having a mac

  • If you want to share the app you need to send the whole .apk / .ipa file

  • Does not provide JS APIs out of the box, e.g. Push-Notifications, Asset Manager, they need to be manually installed and linked with yarn for example.

  • Setting up a working project properly take more time.

Expo:

Advantages:

  • Setting up a project is easy and can be done in a few minutes.

  • Sharing the app is very easy (via QR-code or link).

  • No build necessary to run the app

  • Integrates some basic libraries in a standard project (Push Notifications, Asset Manager, etc.)

  • You can eject it to ExpoKit and integrate native code continuing using some of the Expo features, but not all of them

  • Expo can build .apk and .ipa files (distribution to stores possible with Expo)

Disadvantages:

  • You can't add native modules (probably a gamechanger for some)

  • You can't use libraries that use native code in Objective-C/Java (eg: react-native-fbsdk)

  • Large APK Size

  • Debugging in ExpoKit (with native modules) is a lot more complicated since it mixes two languages and different libraries.

  • Choosing between Expo and React Native CLI depends on your application requirements.

Aryan Beezadhur
  • 4,503
  • 4
  • 21
  • 42
ABDELKHALEK ZELLAT
  • 238
  • 1
  • 3
  • 11
3

I prefer React Native CLI, expo has some good things but it has a lot of limitations and probably you will regret to use it in the future.

Check this website: https://apiko.com/blog/expo-vs-vanilla-react-native/

Carlos Saiz Orteu
  • 1,735
  • 1
  • 10
  • 18