RORK LABEN
TOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しましたTOOLING — Rorkの開発者向けリポジトリが動き続けています。rork-xcodeが7月16日、rork-deviceが7月15日、rork-plistが7月13日に更新されましたOPUS46 — RorkでClaude Opus 4.6が稼働しています。Rork MaxはClaude Codeを土台にアプリを組み立てる設計ですSIM — ブラウザ上で動くクラウドのiOSシミュレータを備え、実機へのインストールは1クリック、App Storeへの提出は2クリックと案内されていますMAX — Rork MaxはReact Nativeではなく純粋なSwiftを出力します。iPhone・iPad・Apple Watch・Apple TV・Vision Pro、そしてiMessageまでが射程ですNATIVE — HealthKit、ARKitとLiDAR、NFC、Dynamic Island、Live Activities、Metalによる3D、Core MLのオンデバイス推論まで扱えますSEED — RorkはLeft Lane Capitalが主導する1,500万ドルのシードラウンドを実施し、Peak XVとa16z Speedrunが参加しました
記事一覧/AIモデル
AIモデル/2026-05-08中級

Rork の AI に古いライブラリのコードを生成されないために — 私が使っている「バージョン明示プロンプト」の実例

Rork Max の AI が古い API を生成してしまう原因と、私が日々使っているバージョン明示プロンプトの構造・テンプレート化の方法・実機で気づくチェック手順までを実例つきでまとめます。

Rork515Rork Max230AIプロンプトExpo149React Native209

始まりは「動かないコード」を3回作り直したこと

2026年に入ったばかりの頃、Rork Max で Expo Router を使った画面遷移を実装していたときのことです。AI が生成したコードがどうしても期待通りに動かず、1時間以上も同じ部分を直していました。あとで気づいたのですが、生成されていたのは Expo Router v2 時代の API で、私のプロジェクトはすでに v3 系を使っていたのです。

このとき改めて感じたのは、Rork の AI は学習データの中で「平均的に正しい書き方」を選ぶため、自分が使っているライブラリのバージョンを明示しないと、しばしば1〜2世代前の書き方を出してくることがあるということでした。

特に Expo SDK や React Native は半年に1度の頻度で破壊的変更が入るため、放っておくと「動かないコードを直す時間」のほうが、新機能を実装する時間より長くなってしまいます。

宮大工だった祖父たちが「道具の手入れは仕事の半分」と言っていたのを、ふと思い出しました。AI に生成させる前のプロンプトを整える時間が、開発全体のスピードを決めてしまう。そんな実感が少しずつ強くなっています。

なぜ AI は古い API を出してしまうのか

学習データに新旧の書き方が混在しているからです。

たとえば Expo Router の場合、Stack Overflow や個人ブログの古い記事には v2 時代の記法(href プロパティでオブジェクトを直接渡すなど)が大量に残っています。Rork Max のような汎用 AI は、これらを区別する手段がプロンプト内のヒント以外にほとんどありません。

加えて、コード生成 AI は「文法的に正しい」「型エラーが出ない」「過去のコードベースで動いた実績がある」という基準で生成しがちです。「最新のベストプラクティス」「v3 ではこの書き方は非推奨」といった情報は、必ずしも反映されるわけではありません。

私の体感では、明示しないとおおよそ次のような選択をしてくることが多いです。

  • React Navigation v6 と Expo Router v3 の混在 → React Navigation のコードが優勢
  • React Native 0.74 と 0.76(New Architecture)→ 0.74 風の書き方
  • Reanimated v2 と v3 → v2 風の useSharedValue 使い方
  • Stripe SDK v0.x と v1.x → 古い API 形式の confirmPayment 引数

どれも一見すると動きそうに見えるところが厄介で、ビルドが通ってしまうケースもあります。

私が使っている「バージョン明示プロンプト」の基本構造

これを防ぐために、私は新しい画面や機能を Rork に頼むとき、必ずプロンプトの冒頭にプロジェクトの環境情報を貼り付けるようにしています。

【プロジェクトの環境】
- Expo SDK 54
- Expo Router v3
- React Native 0.76 (New Architecture 有効)
- TypeScript 5.4 (strict: true)
- Reanimated 3.10
- TanStack Query v5
- Supabase JS Client v2.45
 
【コーディング方針】
- ルーティングは Expo Router の Stack/Tabs を使用(React Navigation の直接利用は禁止)
- 非同期処理は async/await を使用(.then チェーンは避ける)
- スタイリングは StyleSheet.create を基本とし、NativeWind は使わない
 
【依頼内容】
ユーザーがプロフィール画像をタップしたら、画像をフルスクリーンで表示する画面を追加してください。
画像のピンチイン/ピンチアウトは Reanimated v3 の useSharedValue と withSpring で実装してください。

このように環境セクションと方針セクションを分けて先に書くことで、AI は「この人はこのバージョンで書いてほしいんだな」と理解してくれる確率が大きく上がります。

特に効くのが「禁止事項」を明示することです。「React Navigation の直接利用は禁止」のように書くと、Expo Router を回避して React Navigation のコードが出てくる頻度がはっきり下がります。

バージョン情報を「常に持っておく」ためのテンプレート化

毎回手で書くのは面倒なので、私は prompts/_environment.md というファイルをプロジェクト直下に置くようにしています。

中身はおおよそこのような形です。

# Project Environment (for AI prompts)
 
## Stack
- Expo SDK: 54.x
- React Native: 0.76.x (New Architecture: enabled)
- TypeScript: 5.4 (strict, noUncheckedIndexedAccess)
 
## Routing
- Expo Router v3 (Stack / Tabs)
- DO NOT use React Navigation directly
 
## State / Data
- TanStack Query v5
- Zustand v4 (NOT Recoil, NOT Redux)
- Supabase JS Client v2.45
 
## Styling
- StyleSheet.create
- DO NOT use NativeWind, styled-components, or Tamagui
 
## Animation
- Reanimated v3 (useSharedValue, useAnimatedStyle, withSpring)
- DO NOT use Animated.Value (legacy API)
 
## Forms
- react-hook-form v7 + zod v3
 
## Last verified: 2026-05-08

新しい画面を依頼するときは、このファイルの内容をそのままプロンプトの冒頭にコピペします。Rork Max には会話のコンテキストが残るので、最初の依頼でこれを渡しておけば、その後しばらくは正しいバージョンの書き方を維持してくれます。

ただし長い会話の途中で AI が古い書き方に戻り始めたら、もう一度このテンプレートを貼り直すと回復します。これは経験上のコツで、明確な根拠まで突き止められてはいませんが、実際に効果を感じる場面が多いです。

ライブラリのバージョンが変わったらこのファイルを更新します。地味な作業ですが、続けていくと「AI に古いコードを書き直させる時間」が、ほぼゼロに近づいていきます。

バージョン以外に明示しておきたい3つのこと

環境情報以外にも、AI を望ましい方向に誘導するために、私が必ず伝えていることがあります。

ひとつ目は、コード規約の「やらないこと」です。「any 型を使わない」「useEffect の依存配列を空配列で逃げない」「Math.random() を id に使わない」のように、自分が嫌う書き方を先に潰しておきます。

ふたつ目は、エラーハンドリングの方針です。「ネットワークエラーは TanStack Query の onError で処理し、画面側では Toast で表示する」のように、プロジェクト全体の方針を毎回伝えます。これを書かないと AI は try/catch で握り潰したコードや、alert() を使った雑なエラー表示を出しがちです。

みっつ目は、UI の文体やトーンです。これは実装そのものではないですが、「ボタンラベルは敬体(〜してください)」「エラーメッセージは原因と対処法を併記」のように決めておくと、生成された画面の文言を全部書き直す手間が減ります。

ここまでをまとめると、AI に渡すプロンプトは「環境情報+禁止事項+方針」の3点セットだと考えるとブレません。

Expo の最新バージョン追従と AI コード生成の関係についてまとめた記事 と、Rork でのプロンプト設計全体の考え方をまとめた記事 も合わせて参考にしてみてください。

それでも古いコードが混ざってしまったときの対処

ここまで対策しても、長い対話の中で AI がふと古い書き方を混ぜてくることはあります。私が使っている確認手順は次の通りです。

まずは TypeScript の型エラーが出ていないかを確認します。次に expo install --check のように、Expo CLI が提供しているバージョン整合性チェックを走らせます。これで「依存関係的にはおかしくないか」が分かります。

それから実機(TestFlight 経由)で一度通します。Rork Companion のプレビューだけでは気づけない実機固有の不具合(特にディープリンクや決済まわり)は、ここで初めて表面化することが多いです。

問題が見つかったら、AI に「このコードのこの部分は v2 の API になっています。v3 では xxx を使うようにリファクタしてください」と、具体的に指摘します。「直して」だけだと別のところを変えられがちなので、必ずバージョン名と新しい API 名をセットで伝えるのがコツです。

次にやってほしいこと

もしまだプロジェクト直下に「環境を記述したファイル」を置いていなければ、5分だけ時間をとって prompts/_environment.md を作ってみてください。Expo SDK のバージョン、使っているライブラリ名と主要バージョン、そして「絶対にやらないこと」を3つ書くだけで構いません。

それを次回 Rork に何かを頼むときに、そのまま貼り付けるだけです。生成されるコードの精度が、一段階変わるのを感じていただけるはずです。私も最初は半信半疑でしたが、いまでは毎日の作業に欠かせない習慣になりました。

最後までお読みいただきありがとうございました。同じように AI 生成コードのバージョン整合性で困っている方の参考になれば嬉しいです。

シェア

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

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

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

もしこの記事がお役に立ちましたら、チップ(¥150)で応援いただけると大変励みになります。広告なしでの運営を続けるため、皆さまのご支援が大きな力になっています。

関連記事

AI モデル2026-06-19
Rork Max に月 $200 を払う前に、Expo でどこまで届くかを3階層で見極める
ウィジェットや Live Activities が欲しくなると Rork Max が視野に入りますが、その多くは標準 Rork の Expo 構成でも届きます。機能ごとに「Expo で届く・自作モジュールで届く・Max が現実解」の3階層に分け、課金前に実機で見極める手順を整理しました。
AI モデル2026-07-15
オンデバイス画像認識、React Native の TFLite か Rork Max の Core ML か — 同じ題材で両方組んで決めた選び方
端末内で画像を分類する機能を、React Native に TFLite を積んで作るか、Rork Max のネイティブ Swift と Core ML で作るか。同じ題材を両方で組み、端から端までの内訳を測って選び方を整理しました。
AI モデル2026-06-14
Rork(Expo)製アプリから Apple Foundation Models を呼ぶ — オンデバイスAIをネイティブモジュールで橋渡しする
Rork が生成する Expo(React Native)アプリから iOS のオンデバイスAI、Apple Foundation Models を呼ぶには、Swift 側のネイティブモジュールを挟む必要があります。Expo Modules API で橋渡しを書き、未対応端末ではクラウドへ逃がす構成を実装します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →