Let's Get Clear About React Native

April 10, 2018 0 Comments

Let's Get Clear About React Native



In the case of React, the Virtual DOM is like a layer between the developer’s description of how things must look, and the work that is already done to render the application onto the page. To render interactive UIs in a browser, developers must make changes to the browser’s DOM. While in React Native, instead of rendering to the browser’s DOM, React Native uses native APIs to render to platform-specific components: it invokes Objective-C/Swift or Java APIs to render to iOS and Android components. This is a distinctive feature of React Native that sets it apart from other cross-platform mobile application development technologies which often end up rendering web-based views. 

To understand how React Native works under the hood, you can check out this blog post by Shahen Hovhannisyan, a senior software engineer at Simply. 

React native pros and cons

#pros of React Native

Multi-platform Development

React Native enables using the same code base or a part of it between the iOS and Android operating systems. Practically, full cross-platform development is possible to some extent, of course, depending how many native modules you include in your script․ Though to develop an app for iOS you cannot use WindowsOS but with MacOS you will be able to write multi-platform mobile application without any issues.

Shorter Development Time

One of the strongest sides of React Native is its faster development. Its numerous ready-to-apply components accelerate the development process and due to its ability to share a big part of a code base between operating systems in short time-frame, you potentially halve the development time if you developed two separate native apps for iOS and Android.

Live and Hot Reloading

Thanks to hot reloading, a developer can keep the app running while implementing new versions and tweaking the UI. It makes changes in the app instantly visible without the need for the developer to save them. This boosts productivity and saves a lot of time. The idea behind hot reloading is to keep the app running and to inject new versions of the files that you edited at the run-time. This way, you don't lose any of your state which is especially useful if you are tweaking the UI. 

One team development

Native development requires two independent teams of Android and iOS developers. While developing in React Native, you will mostly need JavaScript developer who can write the code for both platforms. Obviously, to build mobile applications that need more native features, native developers' help also will be required. But overall, React Native development teams are small and easily manageable.

Native Performance

Though JavaScript can not be as fast as native code, in most cases, you won’t see the difference is really slight and unnoticeable to an average user. While developing more complex applications, the technology might appear less effective, but native codes are always there to help you out, so it is no longer a problem.

Simplified UI

React Native is solidly based on creating a mobile UI. In native development, it is necessary to create a sequence of actions in the application, whereas React Native allows to see everything in the script. As a result, it is much easier to see the path a user can take and also to detect bugs on their way.

#cons of React Native

Still Less Native Navigation

React Native still lacks navigation components to provide users with seamless UX. There is no ideal solution in the technology for navigation between displays but it is getting better and better day by day. Our team made some open-source contributions with some navigation pull requests on GitHub. And one of JavaScript engineers share some React Native optimization tips in another blog-post here.

Few Custom Modules

Despite its daily improvements, React Native still lacks some components. And there are still some components that are partially developed. The chances are you won’t have a problem with that, as the majority of custom modules you need are available, well-documented and working properly.

Still requires native code

To implementing some native features and modules in React Native script requires detailed knowledge of a particular platform. React Native does offer custom modules that you can refactor across operating systems, but in case of the access to device sensors, camera or push-notifications you need also some help from iOS and Android developers. Their input depends on the complexity of your project, but you need to bargain for them when kicking off with React Native.

famous companies using React native

Tag cloud