React Native vs Cordova vs Ionic

Nov.02.2017 | 2m Read | ^UX

You've been using React and you want to move or port to mobile apps? React Native might be what you need. Or maybe it's a hyrbrid approach like Apache's Cordova or the Ionic framework.

Everything's here to get started as a mobile app dev in 3, 2, 1...

React Native vs React:

  • ◆ Different imports, setup, and installation.
  • ◆ Different components.

▼ React Native has...

  • ☑⁡⁡ ⁡⁡More in-line styling similar, but DIFFERENT to CSS.
  • ☑⁡⁡ ⁡Animated API for animation.
  • ☑⁡⁡ ⁡Uses PanResponder instead of touch events.
  • ☑⁡⁡ ⁡Navigator vs react-router.
  • ☑⁡⁡ ⁡iOS and Android specific code.
  • ☑⁡⁡ ⁡Apps published via XCode (iOS) or Android Studio (Android).

VS Cordova, Ionic, Etc (Hybrids):

    • ◆ React Native transpiles to Native C (Android) or Swift (iOS) code and has no auxillary purpose.
      ◆ Hybrids like Cordova often use a wrapper to wrap the web app onto the native app.
      ◆ React Native often has better and more optimal performance since the goal is only Native (ie, no webview).
        ☑⁡⁡ ⁡This can be experienced both with loading and also component responsiveness.
        ☑⁡⁡ ⁡React Native itself is a hybrid app since it doesn't actually use Native C or Swift and is still built upon React.
      ◆ React Native is known for having better documentation.
  • RN Pros vs Native Languages:

    • ☑ Similar syntax in styling.
    • ☑ Similar backend.
    • ☑ Rapid prototyping.
    • ☑ Can easily apply Redux, Flux, etc for state management.
    • ☑ Better documentation.
    • ☑ Easier to back-translate to ReactJS for web apps.

    RN Cons vs Native Languages:

    • ◆ Limited library interaction.
    • ◆ Requires JNI plugin to use C.
    • ◆ Possibility of slower JavaScript code in the phone's VM.

    What to Use:

    • ☑ Use Ionic, Cordova, Flutter, etc for Rapid App Dev, especially if you already have a web app.
    • ☑ Use React Native when you have extra time and team members to convert a web app for a performance boost.
    • ☑ Use Native SDKs: ie, in C or Swift when you require high performance or have specialized teams of native language programmers.

           : NEWS