Today we are going to look at some of the pro’s and con’s of React Native and make some guesswork as to why - from a business perspective - a company would choose this framework.
We will assume that the business made their choice, based on the current available frameworks out there, of which we propose the following candidates:
Custom / Cordova
There are of course other frameworks out there, but for an enterprise level app these are the true contenders for all intents and purposes. (We’re following Swift coupled with Vapor with great interest but still waiting for Apple to release Swift 3.0)
Sencha, Xamarin and Ionic are all “old” frameworks started a few years ago or more. This was back when Internet Explorer 9 was a common browser, and these frameworks followed the paradigms of how the web and native ecosystems looked like at that point in time.
But while time has changed the ecosystems, time has also added benefits to these older systems, mainly due to the fact that they have earned thousands of community members, contributing from all over the world with updates, bug fixes, new features and much more, making these frameworks more stable and secure along the way.
React Native however, is a very new framework, and recently both the web and native has evolved immensely. This is one of the key features of React (and React Native), offering massive performance benefits and developer productivity.
Being a very new framework has both advantages and disadvantages. Below is a list of pros and cons of React Native:
The framework is very new (not even at version 1.0.0 yet)
Massive hype about React in general.
Facebook describes the framework as “One of React Native's goals is to be a playground where we can experiment with different architectures and crazy ideas. Since browsers are not flexible enough, we had no choice but to reimplement the entire stack.”
Native UI (as noted in the comparison chart, this results in better performance and UX compared to WebViews)
Every browser feature is rewritten by Facebook for React Native (they select which features to add)
Syntax almost identical to React for the Web, making it easy for web developers to get started building native apps.
Android Support only recently added (no support for Windows yet)
If a company is already building components in React, porting them to React Native is a very simple task.
Custom UI components requires native code to implement (Objective-C / Java) making it difficult for developers with no experience in those languages to create custom UI.
React in general is a small framework and many productivity features that other frameworks provides is not present, requiring either the use of community developed code or writing them from scratch.
Facebook dumped Parse, they might do the same with React Native.
Choosing React Native would make more sense if the business already had developers programming with React, or perhaps other applications developed in React, making it much more feasible for them to use React Native as stated in the table above.
The guess here is that, from a business point of view these are main reasons for a business to choose React Native:
- The hype around React (and React Native)
- Onboarding developers familiar with React is easy
- Already having code written in React
- Backed by Facebook
Choosing React Native because of the current hype seems dangerous in that hype, by its very nature, is destined to die down at some point. Whether that same hype will convert itself into something more substantial and worthwhile, only time can tell.
By far the two biggest factors for choosing this framework would be that the company already employed developers familiar with React, as well as having software already written in the language. Whether the developers are in-house or a third party agency matters less, than the fact that the current solutions built with React or React Native are working, and more importantly, working well. This will be a highly individual case by case examination, and requires serious thought and consideration, but it is feasible to reason that somewhere out there, React Native is the optimal choice for developing the next application.
We’ve heard of companies that have had success with React (and React Native), but we have also heard of companies that spend a lot of time on R&D with React (and React Native) but in the end regretted the decision because of the lack of features and the amount of time required to create custom features and tools.
This is important because many other frameworks with a larger following, and more developed community has tons of resources to pull upon in terms of prepackaged modules, GitHub contributions and other time-saving and developer-tested applications, scripts and modules, as well as integration possibilities and API procedures tied in to the overall framework.
About Nodes App Agency
This post is part of Partner Post series on MobileDeveloper.net, written by Mark Pedersen from Nodes. Nodes is an app Development agency based in London and Copenhagen (Denmark) specializing in Business apps. More details at the Nodes website.