RORK LABEN
NATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びていますNATIVE — Rork Max では AR / LiDAR スキャン、Metal を使った 3D、Dynamic Island、Siri Intents、HealthKit、NFC、App Clips、Core ML まで届きますIOS27 — iOS 27 Developer Beta 4 で Siri AI の対象が iPhone 15 Pro / 15 Pro Max・16 シリーズ・17 系へ広がり、応答が初期ベータより明確に速くなりましたDESIGN — iOS・iPadOS・macOS 27 向けの Apple 純正デザインキットが Figma と Sketch 向けに公開されました。新 OS の UI を組む段階で参照できますCANARY — Android 17(Cinnamon Bun)は従来の Developer Preview を廃し、継続更新される Canary ビルドへ移行しました。検証のタイミング設計が変わりますSPARK — Android 17 の Gemini Spark は、アプリを直接操作して配車の予約や注文といった複合的な作業を自動化しますSCALE — Rork は a16z から $2.8M を調達し、月間訪問は74万件規模まで伸びています
記事一覧/開発ツール
開発ツール/2026-06-19中級

リリース前の手動テストで消耗する前に — Rork アプリの主要動線を Maestro で自動E2E化する

Rork で生成したアプリは、プロンプトでの修正が別の画面を静かに壊すことがあります。起動からペイウォールまでの売上に直結する動線を Maestro で自動テストし、CI で回す実装手順を、私自身が個人開発で詰まった箇所とともに共有します。

MaestroE2EテストCI5React Native218Rork525

プレミアム記事

同じ手順を、申請のたびに指で確かめていた

私はいくつかの壁紙アプリやユーティリティアプリを個人開発で運用していますが、Rork で組んだ小さなアプリを App Store と Google Play に出すようになってから、ひとつ困った習慣ができました。申請ビルドを作るたびに、シミュレータを起動して「オンボーディングを進める → 最初の保存をする → ペイウォールが正しく出る → 復元ボタンが動く」を指でなぞって確認していたのです。

最初の数回は数分で済みます。けれど画面が増え、プロンプトで「この画面のボタンの色を変えて」「保存処理にエラーハンドリングを足して」と修正を重ねるうちに、確認する動線が枝分かれしていきました。あるとき、ペイウォールの文言を直しただけのつもりが、復元ボタンの onPress が外れていたことに、申請直前まで気づけませんでした。手で確かめる範囲が広がるほど、見落としが増えていったのです。

AI でコードを生成・修正するワークフローには、この種のリグレッションが起きやすい構造的な理由があります。プロンプトは「直したい箇所」を指すだけで、影響範囲を保証してくれません。だからこそ、売上に直結する数本の動線だけは機械に毎回なぞらせる価値があります。ここでは Maestro を使って、Rork で生成したアプリの主要動線を自動E2E化する手順を、実際に詰まった箇所とともに記します。

なぜ Maestro を選んだか — Detox との実際の差

React Native の E2E テストというと Detox が長く定番でしたが、Rork のように生成コードを素早く回す個人開発の現場では、Maestro のほうが立ち上がりが圧倒的に軽いというのが私の結論です。両者の差を、導入の手触りで並べてみます。

観点MaestroDetox
テストの記述YAML(宣言的・数行で書ける)JavaScript(jest 連携・記述量が多い)
セットアップCLI を入れて flow を1本置くだけビルド設定・config・テストランナー統合が必要
待機処理要素が出るまで自動で待つ明示的な同期 API を意識する場面が多い
フレーク耐性リトライと自動待機が前提で安定しやすい設定を詰めれば強いが初期は不安定になりがち
Expo との相性ビルド済みアプリに外から触れるので影響が小さいネイティブビルドへの組み込みが前提

Detox が劣っているという話ではありません。大規模で、ネイティブの細かい状態まで検証したいなら Detox の表現力が活きます。ただ「生成したアプリの売上動線を、明日から守りたい」という目的には、YAML 数行で書けて壊れにくい Maestro が合っていました。

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

この記事の続きを読む

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

この記事で得られること
Maestro と Detox の違いを、Rork(Expo) 生成アプリでの使い勝手で比較し、最初の1本を YAML で書けるようになります
testID の付け方と、Rork に testID を出力させるプロンプトの書き方、権限ダイアログや課金サンドボックスでの回避策がわかります
GitHub Actions で PR ごとに主要動線を回す .yml を用意し、5分以内でリグレッションを検出する CI を組めます
Stripe による安全な決済 · いつでもキャンセル可能

この記事を購入する

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

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

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

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

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

関連記事

開発ツール2026-07-30
Renovate が触ってよい依存と、触ってはいけない依存 — Expo SDK 57 の123パッケージを機械的に切り分ける
Rork 生成アプリに依存の自動更新を入れると、Expo が版を管理している123パッケージまで巻き込まれます。2026年7月30日時点の実測では、うち6件が npm の最新版へメジャー更新される差でした。除外リストを手で書かず SDK から機械生成する手順をまとめます。
開発ツール2026-08-01
実験の割り当てが同じ端末に偏る — 100万件のIDで確かめたハッシュ選定と salt の位置
端末側で実験の変種を決める割り当てが、実験を2本並べた途端に同じ端末へ集中しました。100万件のIDで4つのハッシュを測り、原因がハッシュの一様性ではなく salt の連結位置にあったこと、そして採用した実装までを実測値とともに残します。
開発ツール2026-07-28
prebuild --clean で消える手入れを、上げる前に数える — Expo SDK 57 移行の棚卸し
Expo SDK 57 への移行前に、ios/ へ加えた手入れが prebuild の再生成でいくつ失われるかを数える手順をまとめました。素の差分649行のうち意味を持つのは3行。ノイズを正規化して実質的な変更だけを抽出するスクリプトと、config plugin への移し替えを実測つきで共有します。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます
もっと見る →