React Native

モバイルアプリケーションフレームワーク
React > React Native

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

React Native
開発元Metaとコミュニティ
初版2015年3月26日 (9年前) (2015-03-26)[1]
最新版
0.74.2[2] ウィキデータを編集 / 2024年4月22日 (2か月前) (2024-04-22)
リポジトリhttps://github.com/facebook/react-native
プログラミング
言語
JavaScript, Java, C++, Objective-C, Objective-C++, Python
ライセンスMIT License
公式サイトreactnative.dev
テンプレートを表示

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

歴史

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

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

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

実装

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

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

出典

🔥 Top keywords: メインページ特別:検索上戸彩エドワード・S・モースXG (音楽グループ)石丸伸二秋葉原通り魔事件山田昌蓮舫木村カエラ椎名林檎井上愛一郎杉浦太陽ブルース・リー渡部峻アンチヒーロー (テレビドラマ)岡崎慎司高橋里華河合優実MY FIRST STORY無職転生 〜異世界行ったら本気だす〜クリストファー・コロンブス古畑任三郎黎智英赤間麻里子髙嶋政伸怪獣8号若葉竜也山本未來小川博Z-1 (アイドルグループ)稲葉浩志眞栄田郷敦天野鎮雄石川さゆり長谷川博己ノーマンズランド三上悠亜森内寛樹