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.
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.