◉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-03中級

Rork Max で複雑な画面を一発で作るプロンプトの書き方

Rork Maxでダッシュボードやバリデーション付きフォームなど複雑な画面を一発で生成するプロンプト設計です。失敗するパターンの分析、役割定義・コンテキスト・UI仕様・品質要件という4要素、モックデータの渡し方まで、完全なプロンプト例で解説します。

Rork Max236プロンプト9AI32画面生成React Native239UI9

Rork Max でシンプルな画面を作るのはとても簡単です。でも「タブ付きダッシュボード」「フォームバリデーション付きの入力画面」「フィルタリングできるリスト」のような複雑な画面になると、プロンプトの書き方次第で生成される品質に大きな差が出ます。

何十回も試した経験から、「これを書くとうまくいく」というパターンが見えてきたので整理してお伝えします。

失敗するプロンプトのパターン

まず、うまくいかないプロンプトの典型例から見てみます。

ダッシュボード画面を作って。売上グラフと最近の注文リストを表示する。

このプロンプトで生成されるものは大体こうなります。売上グラフのエリアはあるけど実データがありません。注文リストはハードコードされたダミーデータが3件。レイアウトはシンプルすぎて実用的でありません。

なぜ失敗するか: Rork Max が「何を作るべきか」は理解できても、「どの品質・仕様で作るべきか」が曖昧なため、最もシンプルな解釈で実装してしまいます。

効果的なプロンプトの4要素

1. 役割とコンテキスト

最初に「このアプリは何で、画面は何のためにあるか」を宣言します。

あなたはShopifyのようなECサービスの管理アプリを開発しています。
この画面は店舗オーナーが毎朝確認する「本日のサマリー」ダッシュボードです。

2. データ構造の明示

使用するデータの型を TypeScript で書いて渡すのが最も効果的です。

// このデータを使って実装してください
interface DashboardData {
  todayRevenue: number;
  todayOrders: number;
  pendingOrders: number;
  recentOrders: {
    id: string;
    customerName: string;
    amount: number;
    status: 'pending' | 'processing' | 'shipped' | 'delivered';
    createdAt: string;
  }[];
  revenueByHour: {
    hour: number;
    revenue: number;
  }[];
}

型を見せることで、Rork Max は「何を表示すべきか」を正確に理解できます。

3. UIコンポーネントの指定

具体的な UI 要素を箇条書きで指定します。

以下のUI要素を実装してください:
- 上部に3つのサマリーカード(本日売上・注文数・保留中)
- 中央に時間別売上の折れ線グラフ(recharts使用)
- 下部に直近5件の注文リスト(ステータス別の色付きバッジ付き)
- プルリフレッシュ対応
- ローディング中はスケルトンUI表示

4. 品質基準

「普通に動けばいい」なのか「本番品質で作りたい」なのかを明示します。

品質要件:
- TypeScript で型を付ける
- エラー状態と空の状態のハンドリングを含める
- iOS/Android 両対応のスタイリング
- React Native の StyleSheet を使う(インラインスタイル禁止)

完全なプロンプト例

上記の4要素を組み合わせた実際のプロンプト例です。

ECアプリ管理者向けダッシュボード画面を React Native で実装してください。

## コンテキスト
店舗オーナーが毎朝使う売上確認画面です。一目で重要な数値が把握できるシンプルさを重視します。

## 使用するデータ型
interface DashboardData {
  todayRevenue: number;        // 例: 128500
  yesterdayRevenue: number;    // 前日比計算用
  todayOrders: number;
  pendingOrders: number;
  recentOrders: Array<{
    id: string;
    customerName: string;
    amount: number;
    status: 'pending' | 'processing' | 'shipped' | 'delivered';
    createdAt: string;
  }>;
}

## UIコンポーネント
1. ヘッダー: 今日の日付と「おはようございます」の挨拶
2. サマリーセクション(横並び3カード):
   - 本日売上(前日比の矢印表示付き)
   - 本日注文数
   - 保留中注文数(赤いバッジ)
3. 直近注文リスト(5件):
   - ステータス別のカラーバッジ(pending=yellow, processing=blue, shipped=green, delivered=gray)
   - 金額と顧客名
4. 画面下部に「すべての注文を見る」ボタン

## 品質要件
- TypeScript、型を全箇所に付ける
- ローディング状態はActivityIndicatorで
- 注文が0件の場合の空状態UIを含める
- StyleSheetを使う、インラインスタイル禁止
- アクセシビリティ: accessibilityLabel を主要要素に設定

## モックデータ
コンポーネント内にサンプルデータを用意して動作確認できる状態にしてください。

このレベルのプロンプトを書くと、最初の生成物がかなり使える状態になります。

反復改善のコツ

一発で完璧な画面ができることはほぼないので、反復改善のプロンプトの書き方も重要です。

悪い反復プロンプト(具体性がない):

なんかもっとかっこよくして

良い反復プロンプト(具体的な差分を指示):

以下の修正をしてください:
1. サマリーカードの角丸を8から12に変更
2. 前日比の矢印アイコンを react-native-vector-icons の Ionicons に変更(up-arrow/down-arrow)
3. ステータスバッジのフォントサイズを10から11に
4. ローディング時のActivityIndicatorをカスタムのスケルトンUIに変更(各カードの高さに合わせた灰色のプレースホルダー)

変更箇所を番号付きリストで渡すと、Rork Max が的確に差分を当ててくれます。

プロンプトの長さと品質のバランス

長いプロンプトが必ずしも良いわけではありません。経験上、以下のバランスが効果的です。

200文字以下のプロンプトでは、ほぼ必ずシンプルすぎる実装が返ってきます。400〜800文字のプロンプトがベストゾーンで、詳細すぎず、でも必要な情報が揃っています。1000文字を超えると、Rork Max が指示に忠実すぎて冗長なコードを生成することがあります。

データ型の TypeScript 定義を含めることで文字数は増えますが、それは有益な追加なので例外です。

全体を振り返って

Rork Max はプロンプトを「設計書」として渡すことで本領を発揮します。「作ってほしいものの形」を具体的に伝えるほど、手直しの回数が減ります。最初の10〜20回のプロンプトで試行錯誤するより、最初から丁寧に書いたほうが結果的に速い——これを実感してから、プロンプト設計に時間をかけることに躊躇がなくなりました。

12年の個人開発で見えてきたこと

リリース直後にチェックしているもの

  • クラッシュレポートの上位エラーを24時間ごとに確認しているか
  • AdMob/StoreKit の収益ダッシュボードに異常検知が出ていないか
  • ユーザーレビューに技術的な指摘が含まれていないか
シェア

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

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

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

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

関連記事

⬡ 開発ツール2026-09-10
画面を暗くする機能を足したら、アプリを閉じたあとも iPhone が暗いままでした
expo-brightness の setBrightnessAsync は、Android では現在のアクティビティにだけ効き、iOS では端末の明るさそのものを変えます。戻す責任が片側にしかない理由と、AppState で後始末をするフックの実装をまとめました。
⬡ 開発ツール2026-09-04
EAS の secret は「アプリに入れない」設定ではありません — 接頭辞と可視性を別々に決める
EXPO_PUBLIC_ の接頭辞は成果物に入るかを決め、EAS の可視性は誰が読めるかを決めます。二つを重ねたときに OTA 更新でだけ値が消える筋道と、出荷前に自分の手で確かめる手順をまとめました。
⬡ 開発ツール2026-09-01
expo-paste-input で画像を貼り付けられる入力欄を作り、消える file:// を documents へ逃がす
チャット入力に画像やGIFを貼り付けられるようにする expo-paste-input の実装手順です。onPaste が返す file:// は一時ファイルで、送信までの間に消えることがあります。保存先を移す実装と、実機で確かめる順番をまとめました。