React Native

React Native（リアクト・ネイティヴ）は、Facebookが作成したオープンソースのモバイルアプリケーションフレームワークである。開発者がネイティブプラットフォーム機能とともにReactを使用できるようにすることで、Android、iOS、WebおよびUWPアプリケーションを開発するために使用される。
さらに、Qtの不完全なポートも存在する。
歴史.
2012年、マーク・ザッカーバーグは、「会社として犯した最大の間違いは、ネイティブではなくHTMLにあまりにも賭け過ぎたことだ」とコメントした。彼は、Facebookがまもなく優れたモバイルエクスペリエンスを提供すると約束した。
Facebookの内部で、ジョーダン・ウォークは、バックグラウンドJavaScriptスレッドからiOSのUI要素を生成する方法を見つけた。彼らは、このテクノロジーを使用してネイティブアプリを構築できるように、このプロトタイプを完成させるための社内ハッカソンを組織することにした。
数か月の開発の後、Facebookは2015年にReact JavaScript Configurationの最初のバージョンを公開した。テクニカルトークでChristopher Chedeauは、Facebookがグループアプリと広告管理アプリの本番で既にReact Nativeを使用していると説明した。
実装.
React Nativeの動作原理は、React Nativeが仮想DOMを介してDOMを操作しないことを除いて、Reactとほぼ同じである。バックエンドプロセス（開発者によって記述されたJavaScriptを解釈する）においてエンドデバイス上で直接実行され、シリアライゼーション、非同期、およびバッチブリッジを介してネイティブプラットフォームと通信する。
Reactコンポーネントは、既存のネイティブコードをラップし、Reactの宣言的なUIパラダイムとJavaScriptを介してネイティブAPIと対話する。これにより、まったく新しい開発者チームによるネイティブアプリ開発が可能になり、既存のネイティブチームの作業がはるかに高速になる。
React NativeはHTMLを使用しない。代わりに、JavaScriptスレッドからのメッセージがネイティブビューの操作に使用される。
Hello worldの例.
React NativeのHello worldプログラムの一例を以下に示す。
import React from 'react';
import { AppRegistry, Text } from 'react-native';
const HelloWorldApp = () => {
 return <Text>Hello world!</Text>;
export default HelloWorldApp;
AppRegistry.registerComponent('HelloWorld', () => HelloWorldApp);
次のコードで別のコンポーネントにHelloWorldAppをインポートして使うこともできる。
import HelloWorldApp from './HelloWorldApp';