TL;DR

React とプラットフォームのネイティブ機能を使って、Android と iOS のアプリケーションを作るオープンソースのフレームワーク。

仕組み

Android と iOS の開発では、ビュー(view)が UI の基本的な部品である。テキストやボタンのような小さな要素もビューで、Android では Kotlin や Java、iOS では Swift や Objective-C で書く。

React Native では、これらのビューを JavaScript から React のコンポーネントとして呼び出せる。実行時に、React Native がコンポーネントに対応する Android と iOS のビューを作る。同じネイティブのビューを使うので、作ったアプリケーションは、ほかのアプリケーションと同じ見た目、操作感、性能になる。

React Native には、すぐに使えるネイティブのコンポーネントがコアコンポーネントとして用意されている。

React NativeAndroidiOSWeb
<View><ViewGroup><UIView>スクロールしない <div>
<Text><TextView><UITextView><p>
<Image><ImageView><UIImageView><img>
<ScrollView><ScrollView><UIScrollView><div>
<TextInput><EditText><UITextField><input type="text">

コアコンポーネントのほかに、自分でネイティブのコンポーネントを作ったり、コミュニティのものを使ったりもできる。

関連

出典