RORK LABEN
DEADLINE — Google Play は2026年8月31日以降、新規アプリと既存アプリの更新の双方に対象 API レベル36(Android 16)以上を要求します。残り13日ですEXTENSION — 期限に間に合わない場合は Play Console の期限延長フォームから申請することで11月1日まで配信を継続できます。延長は自動ではなく、申請自体を期限内に行う必要がありますTARGET SDK — Rork などのビルダーが出力する Expo / React Native アプリでも targetSdkVersion は自分で確認が必要です。テンプレートが古い SDK に固定されていると生成しただけでは要件を満たしませんPOLICY — スパムと最低限の機能に関するポリシーが改定され、高品質な機能とコンテンツ体験が求められます。薄いアプリを量産する運用は正面から影響を受ける領域ですPRIVACY — 収集するデータの項目・用途・第三者への共有の有無について詳細な説明が求められます。ビルダーが自動で組み込む解析 SDK や広告 ID も申告の対象ですRORK — 従来の Rork が React Native / Expo を出力するのに対し、Rork Max は SwiftUI を生成します。無料枠から始められ、有料プランは月25ドルからですDEADLINE — Google Play は2026年8月31日以降、新規アプリと既存アプリの更新の双方に対象 API レベル36(Android 16)以上を要求します。残り13日ですEXTENSION — 期限に間に合わない場合は Play Console の期限延長フォームから申請することで11月1日まで配信を継続できます。延長は自動ではなく、申請自体を期限内に行う必要がありますTARGET SDK — Rork などのビルダーが出力する Expo / React Native アプリでも targetSdkVersion は自分で確認が必要です。テンプレートが古い SDK に固定されていると生成しただけでは要件を満たしませんPOLICY — スパムと最低限の機能に関するポリシーが改定され、高品質な機能とコンテンツ体験が求められます。薄いアプリを量産する運用は正面から影響を受ける領域ですPRIVACY — 収集するデータの項目・用途・第三者への共有の有無について詳細な説明が求められます。ビルダーが自動で組み込む解析 SDK や広告 ID も申告の対象ですRORK — 従来の Rork が React Native / Expo を出力するのに対し、Rork Max は SwiftUI を生成します。無料枠から始められ、有料プランは月25ドルからです
記事一覧/開発ツール
開発ツール/2026-07-10上級

React Compiler を Expo に入れて、手書き memo を 41 箇所消しました

Rork が生成した React Native 画面に React Compiler を導入し、再レンダリング回数を Profiler で実測しました。手書き memo/useCallback の削除判断、効かない箇所の見分け方、CI での回帰検知までをまとめています。

React CompilerExpo171React Native227パフォーマンス33Rork535

プレミアム記事

壁紙アプリのグリッド画面で、サムネイルを 1 枚お気に入りに登録するたびに画面全体が白くまたたく。Profiler を開いたら、可視領域の 24 セルすべてが再レンダリングされていました。お気に入りフラグが変わったのは 1 セルだけです。

原因はすぐ分かりました。Rork が生成した onToggleFavorite が毎レンダリングで新しい関数として作られ、FlatListrenderItem を丸ごと作り直していたのです。

その場しのぎとして useCallback を足し、React.memo で包み、依存配列を睨む。この作業を 6 本のアプリで何度繰り返したか分かりません。私自身、依存配列の書き間違いで「更新されないバグ」を作った回数のほうが、memo で得た速度より多いのではと感じておりました。

React Compiler を本気で試したのは、その徒労感が理由です。

何を検証したのか

対象は個人開発で運用している壁紙アプリの 1 本です。Expo SDK の React Native 画面で、Rork が生成したグリッド・詳細・設定の 3 画面。手書きの React.memo / useCallback / useMemo が合計 63 箇所ありました。

検証したのは次の 3 点です。

  1. React Compiler を有効にすると、再レンダリング回数は実際にどれだけ減るのか
  2. 手書きの memo 群は削除して安全か。削除すると遅くなる箇所はどこか
  3. コンパイラが最適化を「諦めた」コンポーネントを、目視ではなく機械的に見つけられるか

結論を先に書きます。再レンダリング回数は主要操作で 24 回 → 2 回に落ち、手書き memo は 63 箇所のうち 41 箇所を削除できました。残る 22 箇所には削除してはいけない明確な理由がありました。

導入は Babel プラグイン 1 行、ただし前提が 2 つ

Expo での有効化そのものは短いものです。

npx expo install babel-plugin-react-compiler
// babel.config.js
module.exports = function (api) {
  api.cache(true);
  return {
    presets: [["babel-preset-expo", { "react-compiler": true }]],
  };
};

babel-preset-exporeact-compiler: true を渡すと、プリセットがコンパイラを配線してくれます。手動で plugins に追加すると、プリセットが施す React Native 向けの調整と二重適用になることがあり、私は 1 度これでビルドを壊しました。プリセット経由に統一するのが安全です。

前提が 2 つあります。

前提 1: New Architecture が有効であること。 厳密にはコンパイラ自体は旧アーキでも動きますが、コンパイラが前提とするレンダリング挙動(自動バッチング、Concurrent 由来の再入可能性)は New Architecture で揃います。旧アーキのまま入れると、後述する「2 回に落ちたはずの再レンダリングが 5 回残る」状態になりました。移行手順は新アーキテクチャの段階移行にまとめてあります。

前提 2: Metro のキャッシュを必ず捨てること。 npx expo start --clear を挟まないと、変換前のバンドルが残ります。「導入したのに何も変わらない」という報告の大半はこれです。開発ビルドで確認できたつもりが本番ビルドでは別の結果になる、という落とし穴もここに潜んでいます。回避策は単純で、計測の前に必ずキャッシュを捨てることに尽きます。Metro のキャッシュ挙動はFast Refresh のトラブルシューティング側にも書きました。

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
Expo に React Compiler を入れ、commit 回数 24 → 2・commit 時間 36% 短縮を Profiler で実測した再現手順
手書き memo/useCallback 63 箇所のうち 41 箇所を削除し、22 箇所を残した判別基準
コンパイラが bail out したコンポーネントを eslint-plugin-react-hooks と useMemoCache の出現数で洗い出す方法
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Rork Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • コピー&ペーストで使える実装コード付き
  • 毎日新しい上級ガイドを追加
  • ¥580/月 または ¥1,480 の永久アクセス
メンバーシップを見る →

関連記事

開発ツール2026-04-12
Rorkアプリが重い・遅い・フリーズする原因と解決法:パフォーマンストラブルシューティングガイド
Rorkで作ったアプリが重い、画面切替が遅い、フリーズするときの診断ガイドです。スクロールのカクつき、遷移のもたつき、起動の遅さ、メモリリーク、画像のチラつきという症状別に原因を特定し、Expo DevToolsでの可視化も含めて解決策を示します。
開発ツール2026-08-02
2文字の検索語が静かに0件になる — Expo アプリの日本語検索インデックスを実測で選び直す
SQLite FTS5 の trigram トークナイザは2文字以下の日本語クエリを例外なしで0件にします。2万件のカタログで線形走査・bigram 転置索引・FTS5 を実測し、索引を足すべき閾値と起動コストの実数を出した記録です。
開発ツール2026-07-30
Renovate が触ってよい依存と、触ってはいけない依存 — Expo SDK 57 の123パッケージを機械的に切り分ける
Rork 生成アプリに依存の自動更新を入れると、Expo が版を管理している123パッケージまで巻き込まれます。2026年7月30日時点の実測では、うち6件が npm の最新版へメジャー更新される差でした。除外リストを手で書かず SDK から機械生成する手順をまとめます。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →