Suffixtree Blog - SAP | ERP | E-Commerce | Mobile Apps

What is React Native?

Written by Jitha Sanal | Sep 14, 2022 2:19:27 AM

To begin with, React Native is a JavaScript library that is used to build native mobile applications for both iOS and Android platforms. It is an open-source mobile applications framework that was created by Facebook.

The theme of React Native is to “Learn once, write everywhere”. Let’s explore what this theme represents.

  1. “Learn once”

This statement signifies the single language nature of React Native, i.e. JavaScript. We will talk about JavaScript in more detail further on in this article.

  1. “Write everywhere”

This statement signifies the fact that React Native can be used to code for any mobile platform making it exceedingly powerful. It also shows the power of re-usability of code that allows developers who are coding for one platform to import a major chunk of their code to a separate platform without having to make significant changes to the code base.

Let’s see what JavaScript really is and what it is capable of:

JavaScript, along with HTML and CSS is what is today considered the backbone of the modern World Wide Web or WWW as it is popularly known.

It was built as a high level, interpretive language for front end development to build interactive websites, and was developed by Brendan Eich who was also the co-founder of the Mozilla foundation.

Earlier though, Netscape and Sun Microsystems came together to implement the newly developed JavaScript in the Netscape Navigator browser which provided interactive capabilities to the browser and allowed for it to host interactive websites.

In November of 1996, Netscape submitted JavaScript to the European computer manufacturers association or ECMA which led to the official release of the language specification called ECMAScript. JavaScript versions to do this date are released as ES(version).

JavaScript remained a popular language but only to those doing front-end development, until 2009 when Ryan Dahl used the V8 JavaScript engine found in Google’s Chrome browser to create NodeJS which gave JavaScript freedom from the browser, allowing it to be used for back-end development as well.

History of React Native:

JavaScript shot up in popularity and soon became the fastest-growing computer language in the world. Many companies decided to use JavaScript libraries to further their own technology.

In 2012, Mark Zuckerberg, the CEO of Facebook noted that their bet on HTML had not worked and that Native technology was the way forward. He promised that Facebook would soon provide a better mobile experience.

Jordan Walke, a Facebook employee found a way to access UI elements for iOS using a background JavaScript thread and an internal hackathon was organised in Facebook to perfect this prototype.

In 2015, Facebook officially launched React Native and revealed that they had been using the technology in their Group app as well as their Ads manager app successfully.

React Native was built very similarly to the pre-existing React technology that Facebook had created for Web design purposes. React Native unlike React did not manipulate the DOM and did not use HTML. Instead, JavaScript was used to manipulate native views.

A few additional Pros of React Native:

  1. Cross-platform Development: Not only can code be created for both platforms simultaneously but the components of code used for one platform can be reused separately for the other platform.
  2. Cost-saving: Development costs of the company reduce when a single team of developers are used to build applications for multiple platforms, using a single language (in this case JavaScript)
  3. Fast performance: React Native uses both CPU and GPU of the mobile to render on the display which helps increase the speed/performance of the application.
  4. Web development: Yeah, sounds unreal but React Native can be used to make web apps. It is still not mainstream but the implications are that a developer can create an application on every platform (Android, iOS, and the web) with reusable components.