Over the past decade, the mobile applications has become completely integrated into the fabric of society. Basically you can't walk the street and find someone who is not interacting with his phone, and this caused mobile apps developers to begin developing apps using Java for Android and Swift/Objective-C for IOS, and as we know developing mobile apps is not an easy task using more than one programming languages for these platforms, as i said it can be very hard, time consuming and exhausting. To overcome this issue developers started to use cross-platform application development and one of these technologies is React Native.
The first step to install React Native is to install Node.js first, you can download it from this link ==> https://nodejs.org/en/
make sure to add the npm in your PATH during the installation process.
after installing Node.JS open cmd/shell and type the commend below
npm install -g create-react-native-app
After installing it you can create a project by entering this commend in cmd/shell
React Native, as FaceBook call it "learn once, write anywhere" allows you to write mobile apps for Android and IOS only once. So no more wasting time in writing your IOS app in swift or Objective-C then write it again in Java for Android.
Some of the benefits of React Native are as follow:
React works separately from the main UI thread, so your application can maintain high performance without sacrificing capability.
React Native translates your markup to real, native UI elements, leveraging existing means of rendering views on whatever platform you are working with.
Developers accustomed to working on the web with React, this means you can write mobile apps with the performance and look and feel of a native application, while using familiar tools.
As with anything, using React Native is not without its downsides which we are going to list below:
Can make debugging difficult, especially at the intersection of React and the host platform.
When updates are released for the host platform there will be a lag before they are fully supported in React Native.