◉RORK LABEN
●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…●GPT-6.1 SOL — Rork のモデルメニューに追加(09-29)。Low/Medium/High を選べ、Pro・Max に含まれます●SONNET 5.5 — UI づくりが得意で、Sonnet 5 より出力が速いモデルが選べます(09-28)●SDK 58 — Beta が 09/15 から。stable の案内はまだなく、Expo Go でのプロジェクト実行は 09/03 からログインが必要です●WIDGET — iOS のウィジェットが本番ビルドだけ真っ黒になる原因を追った報告が出ています●OBSERVE — EAS Observe がネイティブクラッシュも記録します(SDK 57.0.21 以降・10/07)●NEW — 起動広告が、背面から戻った回にしか出ていませんでした。「前面に戻った」合図が、…
記事一覧/開発ツール
⬡ 開発ツール/2026-05-24上級

Rork が出した RN プロジェクトを New Architecture へ段階移行した検証メモ — 壁紙系 6 アプリ並列運用の手順

Rork で叩き台を組んだ React Native プロジェクトに対して Fabric/TurboModules を段階的に有効化し、6 本の壁紙アプリで並行検証した実装ノートです。フラグ設計・互換性切り分け・KPI 比較までを実体験ベースで整理しました。

Rork585React Native239New Architecture4FabricTurboModulesHermes9段階リリース

✦ プレミアム記事

個人でアプリ開発を 2014 年から続けている廣川政樹です。Rork が吐き出してくれる React Native プロジェクトは便利な反面、本番運用に持っていくときに「いつ React Native の New Architecture (Fabric + TurboModules + Bridgeless) に乗せ替えるか」という判断を毎回迫られます。今回は壁紙系の自分のアプリ群を題材に、Rork の叩き台に New Architecture を段階的に流し込んだ検証手順をまとめます。累計 5,000 万 DL を超えた壁紙アプリ群を 6 本並列で運用してきた身として、いきなり全部を切り替える勇気は出ませんでした。リスクを分割しながら数値で追える形に持ち込んだ流れを順に書きます。

なぜ New Architecture を「移行」ではなく「段階導入」と呼ぶか

React Native の New Architecture は、ブリッジ廃止・Fabric レンダラ・TurboModules を一括で有効化する派手な変更ですが、現場視点ではフラグ 1 個で覚悟を決める作業ではありません。私の場合、Rork で出力した雛形に AdMob・Firebase・Skia・Reanimated・MMKV・AppLovin MAX を載せた構成を 6 アプリに横展開しています。その状態で newArchEnabled = true を一発でひっくり返すと、Fabric 非対応の古いネイティブモジュールが起動直後に静かに死に、TestFlight 配布まで気付けないことが過去にありました。

そこで現在は「移行」ではなく「段階導入」という言葉を社内ドキュメントでも使うようにしています。具体的には次の 4 段階に分けています。

  1. ベースライン計測 — Old Architecture のまま冷起動・JS スレッド負荷・クラッシュ率を 2 週間取る
  2. フラグ実装 — expo-build-properties 経由で newArchEnabled を端末別に切り替えられるようにする
  3. カナリア配布 — 6 アプリのうち最も DAU が小さい 1 本を社内 + TestFlight で 1 週間まわす
  4. 横展開 — KPI が同等以上ならアプリを 1 本ずつ昇格、悪化が出たら直前のステップに戻す

「いきなり Production の全アプリを切り替えない」というだけのルールですが、運用上はこの順序が一番効きます。Rork が出した雛形は New Architecture 対応として綺麗に組まれていることが多いので、ぶつかるのはほぼ自分が後から足したネイティブ依存だけ、という認識でも実態に近いです。

Step 1: ベースライン計測の取り方

ベースライン段階では Old Architecture のままで構いません。むしろ「移行前の値が手元にない」状態で先に進むと、後段で「速くなった気がするが説明できない」という曖昧な意思決定になります。私は最低 14 日の連続稼働を確保するようにしています。

計測項目は次の 5 つに固定しています。

  • 冷起動: Firebase Performance Monitoring の _app_start を p50/p95 で
  • JS スレッド負荷: Hermes プロファイラで主要画面遷移を 30 サンプル取る
  • ネイティブメモリ: Xcode Instruments と Android Profiler で同一シナリオを 3 回
  • クラッシュ率: Crashlytics の Crash-free users を直近 14 日
  • ANR (Android): Play Console の Android Vitals から 7 日中央値

この 5 項目を Notion の検証表に貼り、後段で同じ列を 2 週間ごとに追記していきます。記録のフォーマットを最初に固めておくと、社内で比較するときに「数字の意味のすり合わせ」に時間を使わずに済みます。

✦

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

この記事の続きを読む

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

この記事で得られること
✦Rork 出力直後の RN プロジェクトに `newArchEnabled` フラグを段階導入する Expo SDK 配下の設定手順
✦Fabric 非対応の旧ネイティブモジュールを Interop Layer 側で包み込む際の判定フローと残存リスクの管理方法
✦壁紙系 6 アプリで冷起動・JS スレッド負荷・クラッシュ率を 2 週間サイクルで比較する KPI 設計テンプレ
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

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

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

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

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

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

関連記事

⬡ 開発ツール2026-10-13
リリース前に、書き出した Expo バンドルの中から自分の鍵を探してみる
ソースに鍵がなくても、出来上がったアプリの中に鍵が残ることがあります。Expo SDK 57 で実際に expo export を実行し、バンドルの中身を grep と 60 行ほどの Node スクリプトで調べて、見つかる鍵と見つからない鍵の違いを確かめました。
⬡ 開発ツール2026-09-04
EAS の secret は「アプリに入れない」設定ではありません — 接頭辞と可視性を別々に決める
EXPO_PUBLIC_ の接頭辞は成果物に入るかを決め、EAS の可視性は誰が読めるかを決めます。二つを重ねたときに OTA 更新でだけ値が消える筋道と、出荷前に自分の手で確かめる手順をまとめました。
⬡ 開発ツール2026-08-22
一括置換は全ファイル成功しました。壊れたのは、消さなかった行のほうです
生成コードに一括置換をかけると、一致した行ではなく隣の行が壊れます。運用中のプロジェクトで実際に起きた破損と、置換の不変条件を検査する20行のガードスクリプトをまとめました。