React Native

React Native is an open-source mobile application framework created by Facebook, Inc. [3] It is used to develop applications for Android[4], iOS, Web[5] and UWP[6] by enabling developers to use React along with native platform capabilities [7].

React Native
Developer(s)Facebook and community
Initial releaseMarch 26, 2015 (2015-03-26)[1]
Stable release
0.63.1 / July 14, 2020 (2020-07-14)[2]
Repositoryhttps://github.com/facebook/react-native
Written inJavaScript, Java, C++, Objective-C, Objective-C++, Python
LicenseMIT License
Websitereactnative.dev

An incomplete port for Qt also exists.[8]

History

In 2012 Mark Zuckerberg commented, "The biggest mistake we made as a company was betting too much on HTML as opposed to native".[9] He promised that Facebook would soon deliver a better mobile experience.

Inside Facebook, Jordan Walke found a way to generate UI elements for iOS from a background JavaScript thread.[10] They decided to organise an internal Hackathon to perfect this prototype in order to be able to build native apps with this technology.[11]

After months of development, Facebook released the first version for the React JavaScript Configuration in 2015. During a technical talk,[12] Christopher Chedeau explained that Facebook was already using React Native in production for their Group App and their Ads Manager App.[13]

Implementation

The working principles of React Native are virtually identical to React except that React Native does not manipulate the DOM via the Virtual DOM. It runs in a background process (which interprets the JavaScript written by the developers) directly on the end-device and communicates with the native platform via a serialisation, asynchronous and batched Bridge.[14][15][16]

React components wrap existing native code and interact with native APIs via React’s declarative UI paradigm and JavaScript. This enables native app development for whole new teams of developers, and can let existing native teams work much faster.[17]

React Native does not use HTML or CSS. Instead, messages from the JavaScript thread are used to manipulate native views. React Native also allows developers to write native code in languages such as Java for Android and Objective-C or Swift for iOS which make it even more flexible.

Hello World Example

A Hello, World program in React Native looks like this:

 1 import React from 'react';
 2 import { AppRegistry, Text } from 'react-native';
 3 
 4 const HelloWorldApp = () => <Text>Hello world!</Text>;
 5 export default HelloWorldApp;
 6 
 7 // Skip this line if using Create React Native App
 8 AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
 9 
10 // The React native code can also be imported from another component with the following code:
11 import HelloWorldApp from './HelloWorldApp';
gollark: Perhaps Fish is actually a highly advanced AI, far more advanced than any other previous human invention, designed to click eggs on DragCave very fast.
gollark: You would probably have been beaten by fish-y people, who can seek and click golds in 0.001 seconds.
gollark: I should start scraping those or something. Drop analytics could be really interesting.
gollark: Alpine.
gollark: It was probably fish who caught it.

See also


References

This article is issued from Wikipedia. The text is licensed under Creative Commons - Attribution - Sharealike. Additional terms may apply for the media files.