When comparing Lightweight Native UI vs React Native, the Slant community recommends React Native for most people. In the question“What is the best approach to mobile app development?” React Native is ranked 5th while Lightweight Native UI is ranked 6th. The most important reason people chose React Native is:
React Native allows you to create native apps by generating native views with JavaScript instead of using a web wrapper.
Ranked in these QuestionsQuestion Ranking
Pros
Pro Write once, run anywhere
The portability of this solution often exceeds even HTML5 since it isn't limited by browser fragmentation.
Pro Native performance
Solutions often use low level graphics API's optimized for native games to produce the performance level of games while compiling the application to native.
Pro Deep customization and control
These solutions usually allow the developers to customize every aspect of the app to the finest details since everything is rendered by the solution
Pro Doesn't depend on OS whims
OS providers often change widget themes and behaviors on whims causing incompatibility and breaks in design/code. This isn't as much of a problem in such solutions.
Pro Ability to access native functionality
Solutions in this space can still call native code directly and sometimes even embed native widgets in place
Pro Allows you to develop native apps
React Native allows you to create native apps by generating native views with JavaScript instead of using a web wrapper.
Pro Large, supportive community
Despite being such a young framework (early 2015), the support for React Native grew quickly. There is a forum, active tag on Stackoverflow and many other ways to get help from the community.
Pro Backed by Facebook
Facebook writes their mobile apps in React Native so the code base gets pretty thoroughly used in some highly demanding scenarios.
Pro More predictable control of the state
The one way data flow, makes it more predictable and easy to control.
Cons
Con Non-native look
Such solutions don't always have a 100% native look, these can range between not at all to "almost there". Some applications can provide a feel that's superior to native functionality.
Con If core team doesn't use a certain feature, it's not developed
Whenever there's functionality you need that they don't use in their apps, it's not going to get developed by them, even if it's obvious it should be in the core. They always say to either submit a PR or create a separate module.
Con Steep learning curve
React Native is not the most beginner-friendly framework for creating mobile apps with JavaScript. It requires that the developer know React, which is known to have a steep learning curve.
Con Many existing JS libraries are not usable on React Native; not exactly a 1-to-1 experience to writing React either
Example: Library that provides a full calendar with agenda view.
In the end it's much easier to develop in actual JavaScript with a solution such as Ionic, especially if your app needs to work well on the desktop.
Con React native only supports react which is getting old
React native is only based on react which is getting old. An old tech developer can't take much breaking changes so it gets more patchs. There is a limit, and react is too verbose and complex. better alternatives available today.