Launched by Facebook in 2015, React Native is a framework that enables building multi-platform mobile apps. This relatively new technology has already been greatly appreciated by many developers. This section briefly illustrates the reasons behind its success.
What is it about?
Native mobile apps?
Yes, you read it right. React Native enables you to build native mobile apps. In the very DNA of the framework, Facebook has enabled the embedding of native components (unlike web components). This means that React Native can chat directly with the current APIs found in the OS (iOS and Android).
It is nothing of the sort; React Native allows the developer to import code blocks written in the Java, Kotlin, Objective C or Swift language, which makes life way easier.
What does this great potential tool promise?
Time saving is the main strength of this framework. First, it saves the developer from having to recompile with each modification, since the app reloads instantly during the development phase. Then, the tool enables the creation of a single code base that is suitable for both iOS and Android, which helps the developer spend less time coding. So, only one code to create, one code to update and by a single developer (on paper). Such app would be more maintainable and less expensive.
What makes it different from other frameworks?
What about tools like Cordova and Ionic with respect to React Native?
Ionic or Cordova create the so-called hybrid apps. The latters are developed with standard Web technologies and are encapsulated in native components. It is therefore a real overlay to native development, unlike React Native.
So, can we say that React Native is the “El Dorado” of App Makers?
Let us not go too fast. A quick summary of what is written above:
- The mobile user remains demanding and wants an optimal experience. The navigation in an Android app and in an iOS app is very different (only by the presence of a number of different browsing buttons between the two devices). This implies that some adjustments during projects are necessary to adapt the app to one device or another. In addition, some components are unavailable, which means that the developer may have to develop directly in the native form.
- React Native remains a very young technology. The official website shows the 0.48 version as we write these lines, depicting the framework potential instability. As the course of version 1 is still not achieved, huge changes can impose the complete rewriting of an app to support a new OS version, raising maintainability and evolution concerns.
INTEGRATING A NATIVE LIBRARY IN A REACT NATIVE APP, SOMETIMES, REQUIRES A LOT OF CONFIGURATION
In addition, debugging an app built from React Native can often be a complex process. Indeed, the errors being reported by the system correspond to the React Native generated code. The developer is then responsible for finding out the way React Native generated this code, and how to act on it.
Finally, sometimes, a native library integration within a React Native app requires a lot of configuration. For example, a Google Maps map implementation becomes a long-term job while it takes only a minute on an Android native app.
The excellent command of the React Native framework for creating mobile apps is, therefore, a hard skill to acquire, which implies that as an App Maker, you will be more dependent on the developer who wrote your code.