【りあくとねいてぃぶ】

React Native とは?

最終更新:
💡 Reactの考え方を、スマホのアプリへ

Reactを使い、iOS・Androidのアプリを開発するフレームワークです。処理や画面のコードを共通化しながら、各OSのネイティブUIや機能を利用します。

📌 このページのポイント
共通コードから、2つのスマホアプリへReact + JavaScript / TypeScript画面の部品・アプリの処理iOSOSのUI・機能AndroidOSのUI・機能✓ OSごとの調整・動作確認も行うWeb対応は、別の互換レイヤーなどを利用
コードを共通化しつつ、各OSに合わせます。Web対応にはReact Native for Webなどを組み合わせます。
ひよこ ひよこ
Reactを知っていたら、スマホアプリも作れるの?
ペンギン先生 ペンギン先生
React Nativeなら、コンポーネントを組み合わせるReactの考え方をスマホアプリに活かせるよ。JavaScriptやTypeScriptで書き、画面にはHTMLのdivなどではなくViewやTextといった部品を使う。スマホならではの操作や権限も学ぶ必要があるね。
ひよこ ひよこ
一つ作れば、iPhoneとAndroidで全部同じになる?
ペンギン先生 ペンギン先生
共通化できる部分は多いけれど、必ず全部同じコードになるわけではないよ。画面の見た目やOSの機能に合わせ、Platformで分けたり、iOS用・Android用のファイルを用意したりする。両方のOSで動作を確かめよう。
ひよこ ひよこ
ブラウザの画面をアプリの中に表示するの?
ペンギン先生 ペンギン先生
基本の画面部品は各OSのネイティブUIを使うよ。WebViewでWebページを表示する方式とは違う。ただし、ネイティブUIだからどんな処理でも速いとは限らない。重い計算や再描画などを調べ、本番用ビルドで性能を確認するんだ。
ひよこ ひよこ
Expoを使うと、準備がいらないって聞いたよ。
ペンギン先生 ペンギン先生
Expoは開発やビルドを助けるツール群だよ。Expo Goで試せる機能もあるけれど、独自のネイティブライブラリや設定を使うアプリでは、自分のアプリ用のdevelopment buildが必要になる。ローカルでのビルドとクラウドでのビルドでは、必要な準備も違うよ。
ひよこ ひよこ
Webサイトも同じように作れる?
ペンギン先生 ペンギン先生
React Native for Webという互換レイヤーなどを組み合わせると、Webにもコードを共有できるよ。React Native本体だけで自動的にすべてのWeb機能に対応する意味ではない。まず必要なOSや機能を決めて、対応ライブラリと共通化できる範囲を確認しよう。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「React Native」って出てきたら「Reactでスマホアプリを作り、コードを共通化する仕組み」と思えばだいたいOK!
📖 おまけ:英語の意味
「React Native」 = Reactを使うネイティブアプリ向けのフレームワーク名
💬 Nativeは、ここではiOSやAndroidのUI・機能を使うことを表すよ。Reactという製品名を「反応する」と訳して覚える必要はないんだ。

参考資料

← 用語集にもどる