Expo vs RN CLI

  • Expo

    • pros:

      • Build projects easily.

        • No need to handle native errors.

        • Don’t have to worry much about the build procedure as Expo handles it themselves.

        • No need to have MacOS for building the iOS build.

      • Easily install the library if the library is supported by Expo itself

      • Easily shared the app to use.

    • cons:

      • Build project

        • generally builds application(apk) file is large than built from RN CLI

        • when you are very late to the queue and the build might take upto 3~4 hours to complete

      • Hard time to do addition of native code. Even need to eject the expo, go back to RN CLI.

      • Need to handle Expo problem.

      • Install the library not easily if the library is not supported by Expo

    • others:

      • Default has deeplink, exp://

  • RN CLI

    • pros:

      • Do addition of native modules easily

      • Build project > generally builds application(apk) file is smaller than builds by Expo

      • Most installation libraries are easier than Expo

    • cons:

      • Need to handle native build problems.

    • others:

      • Want to demo or give someone download can use some platform. Eg. Fastlane, AppHost..

      • Need to add listener in our app by ourselves. Use custom app scheme like myapp://

Ex.

Seems we don’t have special features in Frontend(APP), means fewer chances we need to use native(android/ios) libraries. And Expo helps deal with many things about building and deploying. So keep using Expo is better. And authentication for iOS development and builds is a big pain.

2022.03.02

Last updated