React Native

React > React Native

React Native(リアクト・ネイティヴ)は、Meta(旧Facebook)が作成したオープンソースモバイルアプリケーションフレームワークである。開発者がネイティブプラットフォーム機能とともにReactを使用できるようにすることで、AndroidiOSWebMacOS、およびUWPアプリケーションを開発するために使用される。

さらに、Qtの不完全なポートも存在する。

歴史

2012年マーク・ザッカーバーグは、「会社として犯した最大の間違いは、ネイティブではなくHTMLにあまりにも賭け過ぎたことだ」とコメントした。彼は、Facebookがまもなく優れたモバイルエクスペリエンス提供すると約束した。

Facebookの内部で、ジョーダン・ウォークは、バックグラウンドJavaScriptスレッドからiOSUI要素を生成する方法を見つけた[出典無効]。彼らは、このテクノロジーを使用してネイティブアプリ構築できるように、このプロトタイプを完成させるための社内ハッカソン組織することにした。

数か月の開発の後、Facebookは2015年にReact JavaScript Configurationの最初のバージョンを公開した。テクニカルトークでChristopher Chedeauは、Facebookがグループアプリと広告管理アプリの本番で既にReact Nativeを使用していると説明した。

実装

React Nativeの動作原理は、React Nativeが仮想DOMを介してDOMを操作しないことを除いて、Reactとほぼ同じである。バックグラウンドプロセス(開発者によって記述されたJavaScriptを解釈する)においてエンドデバイス上で直接実行され、シリアライゼーション非同期、およびバッチブリッジを介してネイティブプラットフォームと通信する。

Reactコンポーネントは、既存のネイティブコードをラップし、Reactの宣言的なUIパラダイムJavaScriptを介してネイティブAPIを操作する。これにより、非ネイティブアプリ開発者であるウェブエンジニアの投入やiOSとAndroid間などでのクロスプラットフォーム開発が可能になり開発の高速化が期待される。

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';

出典

Uses material from the Wikipedia article React Native, released under the CC BY-SA 4.0 license.