Although some attempts have been made at cross-platform frameworks, the results have been less than satisfactory. Apps built with frameworks such as Cordova simply don’t “feel” like native apps on either platform.
All that may be changing with the advent of the React Native framework. React Native is an open-source framework that is built on the same principles as Facebook’s React framework, which was designed to facilitate cross-browser development of web applications. Like React, React Native uses Javascript to ensure consistent presentation and behavior of visual elements and controls between platforms, while also leveraging the look and feel that make the user experience in each platform unique.
At this writing, React Native is still in beta—a “version 1.0” has yet to appear. However, the community of developers has released regular evaluation versions, and many mobile app developers have given it a try. Reaction (pardon the pun) has been overwhelmingly positive.
The advantages of React Native are not limited to the obvious benefits of true cross-platform development from a single code base. React Native helps developers in other ways as well:
The downsides to React Native are few. Chief among them is that it is still in beta, and there are some bugs to fix and gaps to fill before it’s officially ready for production release. That said, one of the guiding principles of the React Native development team is overall system stability, and they have largely achieved this across each monthly evaluation release. And of course, they are doing their level best to make the framework as comprehensive as possible.
Of course, there are some gaps that may never truly be filled, because they are related to the fundamental differences in the iOS and Android architectures. Some features and behaviors in Android simply have no analogue in iOS, and vice versa. In these cases, app developers may be forced to write platform-specific code. Fortunately, with React Native these cases should be rare for most apps.
React Native appears to be bound for success, partly because of its dedicated development community, enthusiastic user base, and backing of major players such as Facebook and Instagram. And partly because at present there seems to be no better alternative. The future looks bright for React Native and the efficient development that it enables for truly cross-platform mobile apps.