Ռեակտ Նեյթիվ

**Ռեակտ Նեյթիվ** (անգլ․՝ React Native), բաց կոդով միջպլատֆորմային ծրագրային ապահովում՝JavaScript-ում և TypeScript-ում բջջային և համակարգչային ծրագրեր մշակելու համար, որը ստեղծվել է Facebook, Inc-ի կողմից։ React Native-ը թույլ է տալիս ծրագրավորողներին օգտագործել React գրադարանի հնարավորությունները բրաուզերից դուրս՝  համակարգի API հարթակին լիարժեք մուտք ունեցող ծրագրեր գրելիս։

## Պատմություն
2012 թ.-ին Մարկ Ցուկերբերգն ասել է․ “Ամենամեծ սխալը, որը մենք թույլ ենք տվել՝ որպես ընկերություն, HTML-ի վրա չափազանց մեծ խաղադրույք կատարելն էր՝ native-ի փոխարեն”։ Օգտագործելով HTML5-ը Facebook-ի բջջային տարբերակի համար՝ այն դարձել էր անկայուն ծրագիր, որը դանդաղ էր աշխատում տվյալների հետ։ Ուստի Մարկ Ցուկերբերգը խոսք տվեց, որ շուտով Facebook-ը կտրամադրի բարելավված բջջային հնարավորություններ։

Facebook-ի աշխատակիցներից մեկը՝ Ջորդան Ուոլքը (անգլ․՝ Jordan Walke), գտավ iOS համակարգի համար ֆոնային JavaScript-ի կատարման հոսքից UI տարրեր ստեղծելու միջոց, որոնք դարձան React web framework-ի հիմքը։

Ամիսներ շարունակ ծրագրավորումից հետո՝ 2015թ․-ին Facebook-ը ներկայացրեց React JavaScript Configuration-ի առաջին տարբերակը։ Իր խոսքումՔրիստոդեր Չեդոն (անգլ․՝ Christopher Chedeau) բացատրեց, որ Facebook-ը արդեն իսկ օգտագործում էր React Native-ը արտադրության մեջ՝ իրենց Group App-ի և Ads Manager App-ի համար։

## Գործառություն
React Native-ը աշխատում է մի շարք համակարգերում, որոնց թվում են՝ Android, Android TV, iOS, macOS, Apple tvOS, Web, Windows և UWP։ Այն նաև օգտագործվում է վիրտուալ իրականության ծրագրեր գրելու համար՝ Oculus-ում։

Գործնականում React Native-ի աշխատանքի սկզբունքները նույնական են React-ին, բացառությամբ, որ React Native-ը չի շահարկում DOM-ը Virtual DOM-ի միջոցով։ Այն աշխատում է ֆոնային գործընթացում` ուղղակիորեն վերջնական սարքի վրա, և հաղորդակցվում է բնիկ հարթակի հետ` սերիականացված տվյալների միջոցով։

Թեև React Native-ի ոճը նման է CSS-ի շարահյուսությանը, այն չի օգտագործում HTML կամ CSS: Փոխարենը, JavaScript-ի thread-ի հաղորդագրություններն օգտագործվում են բնիկ դիտումները շահարկելու համար։

React Native-ը նաև թույլ է տալիս ծրագրավորողներին գրել native code այնպիսի լեզուներով, ինչպիսիք են Java-ն կամ Kotlin-ը՝ Android-ի, Objective-C կամ Swift-ը՝ iOS-ի և C++/WinRT կամ C#-ը՝ Windows 10-ի համար, ինչն էլ ավելի ճկուն է դարձնում այն։

Microsoft-ը շարունակում է բարելավվել և պահպանել աջակցությունը React Native for Windows-ի և React Native for macOS-ի համար։

### «Hello World» ծրագրի օրինակ
Hello, World ծրագրի օրինակը React Native-ում նման է հետևյալին՝
```js
import { AppRegistry, Text } from 'react-native';
import * as React from 'react';

const HelloWorldApp = () => {
  return <Text>Hello world!</Text>;
}

export default HelloWorldApp;

AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
```


## Տես Նաև
* Mobile development framework
* NativeScript
* Apache Cordova
* Flutter (software)

## Գրականություն
* *Բոնի Էյզենման,* Learning React Native: Building Native Mobile Apps with JavaScript, Դեկտեմբերի 3, 2015թ.
* *Ռոյ Դերքս, Ադամ Բոդուհ,* React and React Native: A Complete Hands-on Guide to Modern Web and Mobile Development with React.js, 3rd Edition, Ապրիլի 20, 2020թ․
* *Նադեր Դաբիթ,* React Native in Action: Developing IOS and Android Apps with JavaScript, Մարտի 7, 2019թ․
* *Ադամ Բոդուհ,* React and React Native, Փետրվարի 7, 2017թ․
* *Frank W. Zammetti,* Practical React Native: Build Two Full Projects and One Full Game Using React Native, Նոյեմբերի 12, 2018թ․

## Ծանոթագրություններ

## Արտաքին Հղումներ
* React Native Dev
* Orielly, Chapter 1: What is React Native?
*