Introduction to React Native


React Native underlines a JavaScript framework used in writing real and natively rendering mobile applications for Android and iOS. The framework is based on React, which is Facebook’s JavaScript library used in building interfaces for web applications. Building a mobile application using javascript isn’t anything new. The similar technique has been used in frameworks such as Ionic, Sencha Touch, Phone Gap, Cordova, and the list goes on.

However, instead of wrapping UIs in a WebView such as frameworks mentioned above, React Native uses JavascriptCore to render actual native components by using an Objective-C bridge. It allows web developers to write mobile applications that feel and look native all from the JavaScript library, while also enhancing the ease with which one simultaneously develops code for both iOS and Android, given that a large proportion of features and logic may be shared between the platforms.

React in React Native

React forces developers to break down their applications into discrete parts, each of which is a representation of one view called a component. You can think of a component as a chunk of a widget. The components enhance the ease with which developers can iterate their products since they do not have to necessarily remember the entire system to make modifications on one component of it.

React Native bears some similarities with React for the web given that its applications are written by the use of JSX, which is a combination of XML-esque markup and JavaScript. Bringing many patterns and technologies from its’ web predecessor, React-native allows web developers who are not familiar with mobile development to start building native applications without any significant learning curve. 

More advantages

There are several advantages to the utilization of React Native in building mobile applications. Indeed, it is noted that React Native utilizes of the standard rendering APIs of the host platform, thereby allowing it to be standing out from a large number of existing techniques pertaining to cross-platform application development. As earlier noted, React Native does not use WebViews, rather it translates the markup to real and native UI elements, thereby delivering UIs that have same look and feel of native elements.

One of the main advantages comes in the code reuse and sharing of knowledge. The use of React Native could result in a reduction of the resources necessary for the development of mobile applications. React native eliminates the requirements to “silo” developers on the basis of their target platform, in which case it allows the developing team to iterate in a speedy manner, while also sharing resources and knowledge in a more effective manner.On the same note, React Native enhances the ease with which codes are reused across platforms as demonstrated by the fact that Facebook Ads Manager applications for Android and the iOS version share about 87% of their codebase.

In addition, React Native enhances the developer experience and is extremely easy to work with particularly given the incorporation of strong developer tools, alongside meaningful error messages. This may be demonstrated by the fact that React Native eliminates the need for developers to recompile their application so as to have the modifications reflected rather one can press the Command+R to refresh the application just as one would any other web page. Also, React Native allows developers to exploit the error reporting and intelligent debugging tools via Chrome Developer Tools. It does not require that one works in XCode for the development of iOS or Android Studio for Android development. This is complemented by the potential for a positive impact on the product release cycle, given that, for example, Apple allows JavaScript-based modifications to the tendency of an app to be effected over the air without having an additional review cycle. This would save time and energy for the developers, enabling them to focus on other components of the work and enhance the overall productivity of their apps.

Further, React Native’s performance is considerably fast for a large number of tasks. Indeed, JavaScript and React Native are able to keep the app operating at 60 frames per second. It is noteworthy that the JavaScript code under the hood would be operating on its own thread, distinctive from the main UI thread, in which case even when the app is operating complex logic, the UI can still smoothly scroll and animate at 60fps, provided that the JS thread would never block the UI thread.

Screen Shot 2016-07-27 at 11.50.06 PM


However, React Native also comes with some disadvantages or drawbacks. Key among the risks is its maturity given that the project is considerably young, in which case its documentation persistently evolves and has room for improvement. It is particularly noteworthy that some elements of Android and iOS are yet to be supported, with the community still coming up with best practices.

It is acknowledged that React Native brings in another layer of the project, in which case it can increase the difficulty of debugging particularly at the point where the host platform and React intersect. These drawbacks, however, are pretty minute considering that the technology is young and, therefore, the risks and drawbacks will be eliminated with time as the community seeks more adaptability and enhanced compatibility.

Leave a Reply

Your email address will not be published. Required fields are marked *