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が参加しました
記事一覧/開発ツール
開発ツール/2026-04-30上級

Rork で作るモバイルアプリのためのプロンプト設計ブループリント

Rork でモバイルアプリを開発するときに、AI への指示(プロンプト)をどう設計すれば期待通りの実装が返ってくるか。実体験から導いた実践的な設計手法を体系化します。

Rork515プロンプトエンジニアリング4モバイルアプリ開発3AIコーディング2実践2

Rork で作るモバイルアプリのためのプロンプト設計ブループリント

Rork で初めてアプリを作った時、私は驚きと困惑を同時に味わいました。「ToDo アプリを作って」と書くだけで、それなりに動くアプリが数分で生成される驚き。一方で、欲しい機能を細かく言語化しても期待通りに実装されない困惑。この差を分けるのが、プロンプト設計の質です。

私はこの一年、Rork で複数のアプリを商用レベルまで仕上げる中で、プロンプト設計の試行錯誤を重ねてきました。ここではその経験から導いた『モバイルアプリ開発に最適化されたプロンプト設計』を体系的にお伝えします。

なぜモバイルアプリのプロンプトは特殊なのか

汎用的なコード生成と、モバイルアプリ開発のためのコード生成には、決定的な違いがあります。モバイルアプリには『画面遷移』『状態管理』『プラットフォーム慣習』という三つの特殊な制約があるためです。

画面遷移は、Web よりも厳格です。タブバー、スタックナビゲーション、モーダルといった構造を、ユーザーは無意識に期待します。これを言語化せずに「画面を作って」と頼むと、Rork はそれぞれ独立した画面を作ってしまい、連携が取れない実装になります。

状態管理も同様です。モバイルアプリでは、画面間でデータを共有する場面が頻繁にあります。「カートに追加した商品が決済画面に表示される」のような連携を、Rork に明示的に伝える必要があります。

プラットフォーム慣習は、特に iOS と Android で大きく異なります。iOS なら戻るボタンは画面上部、Android なら下部のジェスチャーで戻る、というような違いを、最初から指示しておかないと生成されたアプリは『どこかで見たことのない違和感』を生みます。

第一の柱:『仕様』を構造化して伝える

Rork に伝えるプロンプトは、私は常に三層に分けて書きます。第一層が『仕様』、第二層が『制約』、第三層が『期待』です。

仕様は、アプリが何をするかを定義する部分です。ここは曖昧さを完全に排除します。

【仕様】
- 一日の水分摂取を記録するアプリ
- 各記録は『時刻』『量(ml)』『飲料の種類(水・お茶・コーヒー・その他)』を持つ
- 一日の合計摂取量を画面トップに表示
- 目標摂取量(デフォルト2000ml)を設定可能
- 過去30日のグラフを別画面で表示

ここで重要なのが、『データの形』を最初に定義することです。各レコードがどんなフィールドを持つかを明示すると、Rork はデータベース設計から UI 設計まで一貫した実装を返します。逆に「水分を記録するアプリ」とだけ書くと、Rork が独自に解釈したデータモデルが採用され、後から修正が困難になります。

第二の柱:『制約』を明示する

仕様だけ書くと、Rork は最も一般的な実装を選びます。これが期待と合わないことが多々あります。だから『制約』として、具体的な実装方針を明示します。

【制約】
- ナビゲーション: タブバー2つ(記録・分析)
- データ永続化: ローカルストレージのみ(クラウド同期なし)
- ダークモード対応必須
- 記録画面は片手で操作できるレイアウト(重要なボタンは画面下部)
- グラフは折れ線ではなく棒グラフ

この制約のリストが、生成されるアプリの方向性を大きく左右します。特に『片手で操作できるレイアウト』のような UX 上の制約は、明示しないと Rork はバランスの取れた中央配置にしてしまい、実機で使うと使いづらいアプリになります。

私が経験的に学んだ重要な制約の項目は以下の通りです。ナビゲーション構造、データ永続化方式、ダークモード対応、片手操作の優先度、目標プラットフォーム(iOS のみ・Android のみ・両方)、対応する画面サイズ範囲、必要な権限(カメラ・通知など)。これらを最初に明示するだけで、生成品質は劇的に上がります。

第三の柱:『期待』で品質基準を伝える

仕様と制約を伝えた上で、最後に『期待』を書きます。これは『どれだけのクオリティで仕上げてほしいか』を伝える部分です。

【期待】
- 視覚的なデザイン: クリーンでミニマル、鮮やかすぎない配色
- アニメーション: 記録追加時に下から滑り込むスライドイン
- エラーハンドリング: 入力値が範囲外の場合は具体的なメッセージ
- 空の状態: 初回起動時の onboarding メッセージ
- アクセシビリティ: VoiceOver 対応のラベル設定

期待を書くことの最大の効果は、Rork が『手抜き実装』をしなくなることです。「視覚的なデザイン」「アニメーション」「エラーハンドリング」「空の状態」といった細部を明示すると、Rork はそれらを満たすために追加のコードを生成します。書かないと、これらは省略されることが多いです。

繰り返しパターンの効率的な記述

モバイルアプリには、似た構造の画面が複数あることがよくあります。「商品一覧」「カート」「注文履歴」のように、リストとフィルタを持つ画面が3〜4個ある、というケースです。

これらを一つずつ詳しく書くと、プロンプトが膨大になります。私が使っているのは『パターン記述』という手法です。

【共通画面パターン: ListWithFilter】
- 上部: 検索バー + フィルタチップ(複数選択可)
- 中央: スクロール可能なリスト、各項目はカード形式
- リスト下部: ページング(無限スクロール)
- 空の状態: アイコン + メッセージ + CTA

【画面: 商品一覧】
パターン: ListWithFilter
データ: 商品一覧 API
フィルタ項目: カテゴリ、価格帯、評価
カード表示: 画像、商品名、価格、★評価

【画面: カート】
パターン: ListWithFilter
データ: カート内商品(ローカル)
フィルタ: なし(フィルタ部分は非表示)
カード表示: 画像、商品名、数量変更、削除ボタン

このように共通パターンを先に定義し、各画面で『パターン: ...』と参照する形にすると、プロンプト全体の見通しが格段に良くなります。Rork も共通の構造を持つ実装を返してくれるため、コードの一貫性が保たれます。

失敗しがちな指示と修正例

私が最初の頃に何度も失敗した指示パターンと、その修正例をご紹介します。

失敗する指示「使いやすいUIにして」

  • なぜ失敗するか: 抽象的すぎて Rork が独自解釈する
  • 改善後: 「主要操作(追加・削除)を片手の親指で押せる位置に配置」

失敗する指示「データを保存して」

  • なぜ失敗するか: どこに、何を、どう保存するかが不明
  • 改善後: 「AsyncStorage に JSON 形式で、起動時に自動読込」

失敗する指示「エラー処理を入れて」

  • なぜ失敗するか: どんなエラーを想定しているかが不明
  • 改善後: 「ネットワークエラー時は再試行ボタン、入力エラー時は赤枠+メッセージ」

失敗する指示「アニメーションを付けて」

  • なぜ失敗するか: どこに、どんな種類かが不明
  • 改善後: 「画面遷移時にフェード(0.3秒)、ボタン押下時にスケール変化」

抽象的な指示を、具体的な状況と挙動に分解することが、品質を上げる近道です。

プロンプト設計の検証フロー

書いたプロンプトをそのまま Rork に投げる前に、以下のチェックリストで自己検証することをお勧めします。

仕様セクションに含まれるべきこと:データの形(フィールドと型)、主要な機能(最低限の動作)、画面の数と役割。制約セクションに含まれるべきこと:ナビゲーション構造、データ永続化、ダークモード、片手操作、対応プラットフォーム。期待セクションに含まれるべきこと:デザインの方向性、アニメーションの有無、エラー時の挙動、空の状態。

このチェックを通過してから Rork に投げると、最初の出力で得られる完成度が大きく違ってきます。

イテレーションの設計

Rork は対話的に修正を加えていけます。最初のプロンプトで完璧を目指す必要はなく、段階的に磨き上げていく前提で設計します。

私が推奨するイテレーション順序は、まずデータと画面構造を確定する、次に主要なフロー(記録追加・編集・削除など)を完成させる、その後でデザインの細部を調整する、最後にアニメーションとマイクロインタラクションを加える、という流れです。

最初からすべてを完璧に指示するよりも、骨格を固めてから肉付けしていく方が、結果的にプロンプトの総量も短くなり、出力品質も高くなります。

次の一歩

このガイドを読み終えた今、まず取り組むべきは、現在進行中のプロジェクト(または次に作りたいアプリ)の『仕様・制約・期待』を実際に書き出してみることです。書き出すと、自分の中で曖昧だった部分が浮き彫りになります。

その曖昧さこそが、これまで Rork から期待外れの結果を受け取っていた原因です。プロンプトを構造化することは、自分の考えを構造化することでもあります。試してみてください。

シェア

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

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

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

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

関連記事

開発ツール2026-07-17
許可を聞かずに通知を届ける — Rork アプリの provisional 認可と、Expo の定番コードが握りつぶすもの
iOS には許可ダイアログを出さずに通知を配り始める provisional 認可があります。ところが Expo 公式が載せている定番の登録コードをそのまま使うと、provisional で通った端末が「拒否」として扱われ、避けたかったはずのダイアログが出ます。granted が false になる仕組みから、5値で許可状態を扱うフック、静かな配信を前提にした通知設計、昇格を求める判断、計測の分離までを実装込みで整理しました。
開発ツール2026-07-17
半年ぶりのアップデートで署名が切れていた — Rork アプリの証明書とプロファイルを機械的に見張る
Apple の署名アセットは静かに期限を迎えます。App Store Connect API で証明書とプロファイルの残日数を機械的に棚卸しし、Cloudflare Workers の定期実行で先回りする設計をまとめました。
開発ツール2026-07-17
Rork の App Store 提出が「輸出コンプライアンス」で毎回止まるのを設定1行で終わらせる
Rork と Rork Max のビルドを App Store Connect に上げるたびに出る Missing Compliance 警告。免除の判断基準と、app.json / Info.plist で恒久的に消す設定、消えない場合の原因を整理しました。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →