RORK LABEN
MAX — Rork MaxはネイティブSwiftアプリを生成し、iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますNATIVE — Rork MaxはAR/LiDARスキャン、Metalの3D、ウィジェット、Live Activities、HealthKitなどネイティブ機能を解放しますFUNDING — Rorkはa16zから280万ドルを調達し、月間訪問は74万を超え、成長率は85%に達していますRN — 通常のRorkはReact Native(Expo)でiOSとAndroidアプリをまとめて生成しますFOCUS — Rorkはネイティブモバイルアプリ専業で、Web中心のBoltやLovableと一線を画しますPRICING — 無料で始められ、有料プランは月25ドルから、Rork Maxは月200ドルで2クリックのApp Store公開に対応しますMAX — Rork MaxはネイティブSwiftアプリを生成し、iPhone・iPad・Apple Watch・Apple TV・Vision Pro・iMessageに対応しますNATIVE — Rork MaxはAR/LiDARスキャン、Metalの3D、ウィジェット、Live Activities、HealthKitなどネイティブ機能を解放しますFUNDING — Rorkはa16zから280万ドルを調達し、月間訪問は74万を超え、成長率は85%に達していますRN — 通常のRorkはReact Native(Expo)でiOSとAndroidアプリをまとめて生成しますFOCUS — Rorkはネイティブモバイルアプリ専業で、Web中心のBoltやLovableと一線を画しますPRICING — 無料で始められ、有料プランは月25ドルから、Rork Maxは月200ドルで2クリックのApp Store公開に対応します
記事一覧/開発ツール
開発ツール/2026-06-29上級

New Architecture へ移行したら本番だけ画面がカクつくとき — interop 層への静かなフォールバックを計測して切り分ける運用メモ

New Architecture へ切り替えた Rork アプリが、開発中は快適なのにリリースビルドの実機でだけ一覧スクロールがカクつく。原因は旧式ネイティブモジュールが interop 層へ静かにフォールバックしていたことでした。検知の計測と段階的な切り戻しの実務メモです。

Rork475React Native190New Architecture3TurboModules2Fabric2パフォーマンス28interopリリースビルド

プレミアム記事

開発機では出ない不具合に半日溶かした話

ある壁紙アプリを Expo SDK 52 系へ上げ、New Architecture を有効にしたまま数週間、特に問題なく運用していました。ところが、ある日 TestFlight に配ったビルドで「一覧をスクロールすると一瞬引っかかる」という報告が届きます。手元の開発ビルドでは何度試しても再現しません。Expo Go でも、expo run:ios のデバッグビルドでも、滑らかに動くのです。

最終的に原因は、特定のサードパーティ製ネイティブモジュールが New Architecture の TurboModule として動かず、interop 層(後方互換のためのブリッジ)を経由して静かに動いていたことでした。interop 層は「動かなくする」のではなく「遅いまま動かす」ので、機能テストはすべて通ります。だからこそ release ビルドの実機で、しかも特定画面でだけ顔を出すのです。

このメモは、同じ「dev では出ないが release でだけ出る」種類の回帰に当たったときに、当て推量ではなく計測で切り分け、全体を旧アーキへ巻き戻さずに直すための実務記録です。私自身、2014年から個人開発を続けていますが、こうした「環境差で出たり消えたりする」不具合ほど、まず観測点を置くことが近道だと感じています。

なぜ dev と release で挙動が割れるのか

New Architecture では、JavaScript とネイティブの間が JSI(直接参照)に置き換わり、ネイティブモジュールは TurboModule として遅延初期化されます。しかし旧式の NativeModules / NativeEventEmitter に依存したライブラリは、いきなり動かなくなるわけではありません。React Native は interop 層を用意していて、旧 API を新ランタイム上で取り持ってくれます。

問題は、この取り持ちにコストがかかる点です。旧経路では呼び出しごとに JSON シリアライズとスレッド跨ぎが発生し、JSI のゼロコピー同期呼び出しの恩恵が消えます。一覧のセルがマウントのたびに旧式モジュール(例えば画像のメタ情報取得やデバイス情報の同期取得)を叩いていると、その差がスクロールのフレーム落ちとして表面化します。

dev ビルドでこれが見えにくいのは、Metro のリロード前提で最適化が浅く、そもそも体感のばらつきが大きいからです。逆に release ビルドは Hermes のバイトコード化や最適化が効くぶん、相対的に「旧経路だけが遅い」という差が際立ちます。つまり release でだけ出るのは偶然ではなく、構造的に起きやすい現象です。

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

この記事の続きを読む

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

この記事で得られること
「dev では出ないが release でだけ出る」回帰を、interop 層フォールバックの計測で切り分ける手順
どのネイティブモジュールが legacy 経路に落ちているかを起動時に列挙する実装
全体を旧アーキへ戻さず、問題モジュールだけを隔離して段階的に直す切り戻し設計
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-05-24
Rork が出した RN プロジェクトを New Architecture へ段階移行した検証メモ — 壁紙系 6 アプリ並列運用の手順
Rork で叩き台を組んだ React Native プロジェクトに対して Fabric/TurboModules を段階的に有効化し、6 本の壁紙アプリで並行検証した実装ノートです。フラグ設計・互換性切り分け・KPI 比較までを実体験ベースで整理しました。
開発ツール2026-06-25
壁紙アプリの画像キャッシュが静かに膨らんでメモリで落ちる — Rork運用で効いた計測と上限設計の運用メモ
画像が主役のRorkアプリで、ディスクキャッシュとメモリ常駐が少しずつ膨らみ、OOMクラッシュとして表面化する問題への対処。実測フック・キャッシュ上限・配信側リサイズまで、運用で効いた順に実装コード付きで整理します。
開発ツール2026-06-19
Rork で作ったリストのスクロールが重い — 画像キャッシュとプリフェッチの設計
Rork が生成した FlatList は画像が増えるとスクロールがカクつきます。expo-image のキャッシュ、recyclingKey、プリフェッチ、FlashList への移行を実機の数値とともに整理し、滑らかさを取り戻すまでの設計を残しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →