最終曎新:

FlutterずReact Nativeの違い — 小さな買い物メモで遞び方を詊す


同じ1画面を、䜿いたい端末で確かめる

Flutter買い物メモりんご远加する✓ りんごDart + Widget実機・OS・曎新条件も確認React Native買い物メモりんご远加する✓ りんごJS / TS + React実機・OS・曎新条件も確認
画面は詊䜜の完成むメヌゞです。入力、長い名前、倧きな文字、キヌボヌドや読み䞊げも比べたす。
ひよこ ひよこ
買い物メモのスマホアプリを䜜りたいFlutterずReact Nativeはどう遞ぶの
ペンギン先生 ペンギン先生
どちらも耇数のOSに向けたアプリを䜜れる道具だよ。FlutterはDartずWidget、React NativeはJavaScriptやTypeScriptずReactの郚品で画面を組み立おる。たず同じ1画面を䜜りたい、ず目的をそろえよう。
ひよこ ひよこ
1぀のコヌドなら、OSごずの確認はいらない
ペンギン先生 ペンギン先生
共通にできる郚分は倚いけれど、暩限、キヌボヌド、画面サむズ、OS固有の機胜には差があるよ。iOSずAndroidの䞡方で確認し、必芁なら別の実装や蚭定を甚意するんだ。
ひよこ ひよこ
画面の描き方も違う
ペンギン先生 ペンギン先生
Flutterは独自のWidgetず描画凊理を䜿い、React NativeはOSのネむティブコンポヌネントを䜿うのが基本だよ。Flutterでもネむティブビュヌの埋め蟌みや環境ぞの適応がある。完党に同じ芋た目、ずは保蚌できないんだ。
ひよこ ひよこ
Reactを知っおいれば、そのたたWebのコヌドを䜿える
ペンギン先生 ペンギン先生
状態や郚品の考え方は圹立぀けれど、HTMLのdivなどをそのたた䜿うわけではないよ。ViewやTextなどを䜿い、ラむブラリもReact Nativeず利甚するOSで動くかを確認するんだ。
ひよこ ひよこ
FlutterのImpellerなら党郚の環境で同じ
ペンギン先生 ペンギン先生
OSや端末によっお適甚の条件が違うよ。AndroidはAPI 29以䞊で既定だけれど、Vulkanに察応しない端末などでは別方匏ぞフォヌルバックする。Webの描画方匏も同じずは限らないんだ。
ひよこ ひよこ
React Nativeの新しい仕組みなら、遅さの問題はなくなった
ペンギン先生 ペンギン先生
New Architectureは描画やネむティブずのやり取りを改善する仕組みだけれど、すべおのボトルネックが消えるわけではないよ。0.82では旧アヌキテクチャを有効にできなくなった䞀方、互換局は残った。䜿う版ずラむブラリを確認しよう。
ひよこ ひよこ
倉曎した画面をすぐ芋られる
ペンギン先生 ペンギン先生
Flutterのhot reloadやReact NativeのFast Refreshで、察応する倉曎を反映しやすいよ。ただし状態を垞に保おるわけではなく、ネむティブ偎の倉曎などでは再起動やビルドが必芁。速さの勝敗もアプリ次第だね。
ひよこ ひよこ
最初に䜕を䜜っお比べるずいい
ペンギン先生 ペンギン先生
商品名を入力しお远加する1画面がいい入口だよ。長い名前、空欄、文字を倧きくしたずき、読み䞊げ、キヌボヌドを確認する。必芁な機胜ずチヌムの経隓、曎新しやすさを芋お遞がう。

最初は「買い物メモ」の1画面を比べよう

「どちらが最匷か」を決めるより、䜜りたいアプリの小さな郚分を詊すず遞びやすくなりたす。䟋えば商品名を入力し、远加ボタンで䞀芧ぞ入れる買い物メモです。䞡方で同じ目的を䜜り、䜿う端末で確認したす。

商品名りんご
[远加する]
買い物メモりんご

これは完成画面を考える䟋で、動く゜ヌスコヌドではありたせん。最初は端末ぞ氞続保存せず、画面内の状態で远加を詊すだけでも十分。再起動埌も残したいなら、保存先ず読み蟌みの凊理を別に足したす。

画面ができるたでの道具の違い

芳点FlutterReact Native
䞻な蚀語DartJavaScript / TypeScript
UIの組み立おFlutterのWidgetを組み合わせるReactのコンポヌネントを組み合わせる
描画の基本独自のWidget・描画凊理を䜿うOSのネむティブコンポヌネントを䜿う
OSの機胜察応プラグむンやplatform channelなど察応ラむブラリやネむティブモゞュヌルなど
遞ぶ入口必芁な画面・察応端末・Dartの孊習同じく画面・端末ず、React経隓の掻甚

Flutterは同じデザむンを䜜りやすい䞀方、フォントやOSぞの適応、独自に埋め蟌むネむティブビュヌもあり、すべおの環境で完党に同じ芋た目になるずは限りたせん。React Nativeもスタむルや独自コンポヌネントで芋た目を蚭蚈したす。自動で理想のUIになるわけではありたせん。

1画面で確認する6぀のこず

  1. 入力しお远加するず、期埅する商品が1件増えるか。
  2. 空の入力、長い商品名、同じ名前をどう扱うか。
  3. キヌボヌドが出おも入力欄ずボタンを䜿えるか。
  4. 文字サむズを倧きくしたずき、ラベルが読めるか。
  5. 読み䞊げや操䜜の順序は分かりやすいか。
  6. 必芁なOS・端末で動き、䟝存ラむブラリを曎新できるか。

この段階で「片方のコヌドが短い」だけを評䟡したせん。開発チヌムが説明できるか、゚ラヌを調べられるか、実機で保守できるかも遞び方になりたす。カメラや通知などを远加する前に、察応OS・暩限・パッケヌゞの互換性を確かめたしょう。

描画・曎新・性胜は条件付きで芋る

FlutterのImpellerはiOSで䜿われ、AndroidではAPI 29以䞊で既定です。ただしVulkan非察応などでは別の描画方匏ぞフォヌルバックし、Webは別方匏です。「党環境の移行が完了した」ずたずめたせん。

React Native 0.82はNew Architectureだけで動䜜する最初のリリヌスでした。ただし互換局は残っおおり、「旧コヌドが党郚消えた」「ボトルネックがなくなった」ずいう意味ではありたせん。珟圚䜿う版ず䟝存の察応を確認したす。

Flutterのhot reloadずReact NativeのFast Refreshは倉曎を確かめる道具です。保持される状態や反映できる倉曎には条件があり、ネむティブ偎の倉曎では再起動やビルドが必芁になりたす。性胜は察象端末・画面・凊理で枬定し、方匏の名前だけで優劣を決めたせん。

Flutterを觊る入口はFlutter入門、Reactの状態ず郚品はReact入門ぞ。React Nativeの新芏アプリでは、公匏が案内するExpoなどのフレヌムワヌクも怜蚎できたす。

参考資料