気力ゼロから1ヶ月でApp Storeリリース|AI×個人開発の全記録

AI

「個人開発やりたい。でも気力がない。」

これが正直な出発点だった。フリーランスエンジニアとして働く中で、会社の非効率なやり方、無駄な会議、気まぐれな要件変更、聞こえの良いだけのビジョンを掲げて、中身のない退屈な仕事。そういうものに飽きていた。もっと自分で責任を取って、自分で考えて、収益に天井がない代わりにリスクも大きい仕事がしたかった。

でも、いざ自分でアプリを作ろうとすると、やることが多すぎる。コーディングだけじゃない。デザイン、要件定義、インフラ構築、バックエンド実装。一つずつやれば形にできる自信はあったけど、それをやる気力がなかった。大きなことを言うくせに何もしない人間になりかけていた。

そんな時にAIが来た。Claude Code、Figma Make、Notion MCP。コーディングは一瞬で終わるし、自分で書くより速い。インフラやバックエンドの知識もAIに聞けばすぐ分かる。これなら気力のない自分でも、個人開発ができるかもしれない。

同時に懸念もあった。AIで簡単に作れるなら、他の人間も同じことができる。差別化できるのか?正直、AI開発はもう先行者たちが市場を取っていて、今から始めても手遅れだと思っていた。でもSNSを見ると、AIに対する文句記事がバズっている現状があった。「AIが書いたコードのレビューが大変」「リファクタリングさせられて迷惑」。こういう記事がバズるということは、まだまだAIに対する偏見や誤解が多い。今のうちに使いこなす側に回れば、先行者利益はまだ十分取れる。やるなら今しかないと思った。

この記事では、AIをフル活用して約1ヶ月でクイズSNSアプリ「QuizBuzz」をApp Storeにリリースするまでの全工程を振り返る。各フェーズの詳細は別記事で深掘りする予定なので、ここでは全体像と、理想と現実のギャップを正直に書く。

なぜクイズSNSアプリなのか

正直に言うと、大した理由はない。

以前Firebaseで作ったAndroidのクイズアプリがあったが、放置していたらストアからリジェクトされていた。じゃあそれをベースにAWSに載せ替えて、Figma Makeでデザインをちゃんと作り直せばいいだろう、という軽い動機だ。

俺にとって重要だったのは「何を作るか」ではなく「AIでどう作るか」だった。将来的には複数プロダクトをAIで回す予定で、そうしないと周りもAIで開発している以上、差別化できない。だからまずAIで開発を進めること自体に慣れる必要があった。アイデアにこだわるより、開発プロセスの確立が先だった。

技術選定:全部AIとの相性で決めた

バックエンド:Firebase → AWS

元々Firebase + Algoliaで開発していたが、インフラ管理が手動寄りで面倒だった。AWSならCDK(Cloud Development Kit)で完全にコード管理できるし、どうせAIが書くならコードベースの方がAIとの親和性が高い。詳しい経緯は以前の記事で書いている。

Firebase + Algoliaの限界:個人開発でAWS移行した2理由と体験談
Firebase + Algoliaの限界を実体験で解説!複雑検索の制約と運用コスト増でAWS RDS移行した2理由。個人開発の適材適所とハマりポイントも。

ちなみにAWSに移行したらしたで地獄があった。

DynamoDBは地雷原だった|Firebase→AWS移行の理想と現実
Firebase→AWS移行でDynamoDBを選んだ個人開発者の体験談。GSI変更は1回1デプロイ制約で10回デプロイ、FilterExpressionはlimit後に動く罠、シングルテーブル設計の落とし穴を正直に書きます。

フロントエンド:Flutter

元のAndroidアプリがFlutterで開発されていて、クリーンアーキテクチャを採用していた。設計原則をAIに説明すればいい感じにコーディングしてくれそうだった。元モバイルエンジニアとして、Flutter自体の知識はあるから、AIとの協業がしやすいと判断した。

デザイン:Figma Make

デザインはそれなりに勉強したし、Figmaの使い方もある程度は分かる。でも頑張る気力が続かなかった。Figma MakeでAIがデザインを生成してくれると知って試したら、いい感じだった。デザインは完全にAIに任せようと決めた。

使ったAIツール一覧

  • Grok:最初の壁打ち。寝転がってスマホでアイデアを話しながら要件を詰めた
  • Claude(チャット):Grokとの会話をまとめて要件定義書に整理
  • Notion MCP:Claude Codeから直接Notionに要件定義書を書かせた
  • Figma Make:UIデザインの生成
  • Claude Code:CDK実装、Flutter実装、テスト、CI構築

各フェーズの所要時間と感想

Phase 1:要件定義(AI壁打ち × Notion)— 約1〜2時間

正直、最初は「作る」と思っていなかった。寝転がりながらGrokに「こんなアプリ作ろうと思ってるんだけど」と話しかけて、遊びで要件を詰めていった。

でもこの「遊び」が想像以上に生産的だった。DBの設計をどうするか、AWSの認証はCognitoでいいのか、バックエンドはAppSyncかLambdaか、テーブル構造は、Web APIのリクエスト・レスポンスの形は、各機能のUIを文章にするとどうなるか。めちゃくちゃGrokと話し合った。

ある程度固まったらClaudeにGrokとの会話を渡してまとめさせ、Notion MCPで直接Notionに要件定義書を書かせた。最初はClaudeのチャットで管理していたが、「間違って削除したら怖いな」と思ってNotionに移行した。

結果、ざっくりとした全体の仕様は1〜2時間で固まった。細かい仕様はデザインやCDKの実装中に不備に気づくたびにアップデートしていった。

Phase 2:デザイン(Figma Make)— 生成2〜3時間、沼3〜4日

Figma Makeに要件定義書の各機能の説明文を貼り付けて、「Material Design 3で作って」と指示。ホーム画面から順にガンガン生成させた。ダークモードも対応させた。

デザイン生成自体はトータル2〜3時間。AIの出来は予想以上に良かった。

問題はその後だった。「どうせならちゃんとしたデザインファイルにまとめよう」と思ってしまった。Figma Makeの生成結果をデザインファイルにコピーして、コンポーネント化、バリアント管理、プロトタイプでの画面遷移設定……。ここで完全に沼にハマった。

結局、3〜4日Figmaと格闘した挙句、「Figma Makeの生成結果をそのまま貼り付けただけのデザインファイル」で妥協した。AIが2〜3時間で作ったものを、人間が3〜4日かけて整理しようとして挫折するという、なんとも皮肉な結果になった。

Phase 3:CDKインフラ構築(Claude Code)— 約1〜2人日

AWS素人の自分がCDKでインフラを構築する。普通に考えたら無謀だ。

Claude CodeにNotion MCPで要件定義書を読ませて、「この通りにCDK組んで。DynamoDB使って、AppSyncとLambdaでWeb APIも仕様書通りに作って」と指示した。

本当にすぐ終わった。要件定義書通りの実装は1〜2人日で完了した。DynamoDBのテーブル設計、AppSyncのスキーマ定義、LambdaリゾルバーのVTL、Cognitoの認証設定。全部Claude Codeが書いた。

AWS素人でも、要件定義書さえしっかりしていれば、AIがインフラを組んでくれる。これが一番「AIすげー」と感じた瞬間かもしれない。

Phase 4:Flutter実装(Claude Code)— 4〜5日 + 追加4〜5日

Figma MCPでデザインを読ませ、Notion MCPで要件定義書を読ませながら実装させた。CDKと違ってFlutterはコード量が圧倒的に多いし、実装方法の選択肢も多い。claude.mdに設計原則(クリーンアーキテクチャの層構造、依存関係のルール)を書いたが、それでも時間がかかった。

基本的な機能の実装は4〜5日で完了。しかしここで想定外の事態が起きる。

Apple審査の要件を満たしていなかった。

クイズSNSはユーザーがコンテンツを投稿するUGC(User Generated Content)アプリだ。通報機能、ブロック機能、禁止ワードのフィルタリング——これらがないとApp Storeの審査を通らない。開発の途中で気づいて、追加で4〜5日かかった。

Phase 5:Apple審査 — 2回リジェクト、でもアプリ変更ゼロで通過

3月14日に初回審査を提出。2回リジェクトされた。

ただし、アプリ自体は一切変更していない。事前にAIに審査要件を確認しまくっていたので、機能は揃っていた。

1回目のリジェクト:「テストアカウントがないと使えない」。いや、Apple IDでログインできるからそっちを使ってくれと返答。

2回目のリジェクト:「通報機能がない」。スクリーンショットを撮って「ここにあります、確認してください」と返したら、あっさり審査通過。

3月19日、App Storeリリース。

AI開発の理想と現実

「AIすげー」と思った瞬間

爆速開発。これに尽きる。要件定義書を読ませれば設計通りに実装してくれるし、ユニットテストも一瞬で書いてくれる。「ここはテスト書きたいけど、手で書くのは面倒」という場所にも躊躇なくテストを追加できた。GitHub ActionsのCI構築も、人間なら調査込みで1日かかるものをAIが数分で片付けた。

「AIダメだわ」と思った瞬間

設計原則を時々破る。クリーンアーキテクチャを採用しているのに、インフラストラクチャ層がドメインモデルを直接返す実装をしていたり、プレゼンテーション層がUseCaseを経由せずRepositoryを直接呼んでいたり。致命的ではないが、設計原則を書いているのに無視するのは困る。AIとペアプロしながらヒアリングして直した。

認証周りの理解が浅い。Flutterの認証APIに関して、ログアウト後に謎のダイアログが表示される問題が発生。Claude Codeでは直せず、Grokに調べさせたら解決した。ツールによって得意分野が違う。

UIデバッグ(Maestro)は非効率。スクリーンショットの解析にトークンを消費しすぎる。Claude CodeのProプランではすぐに制限がかかり、Maxプランに切り替えた。UIの自動テストはまだAIに任せるには厳しい領域だ。

全体のタイムライン

フェーズ所要時間使ったAI
要件定義(壁打ち→Notion)1〜2時間Grok、Claude、Notion MCP
デザイン生成2〜3時間Figma Make
デザインファイル整理(沼)3〜4日手動(人間)
CDKインフラ構築1〜2人日Claude Code
Flutter実装4〜5日Claude Code
審査対応機能追加4〜5日Claude Code
Apple審査5日(3/14→3/19)

合計:約1ヶ月(2月中旬〜3月19日)。当初「1ヶ月で出す」と決めていたが、少しオーバーした。主な遅延要因はFigmaの沼とApple審査対応機能の追加だ。

正直に言うと、途中でStable Diffusionの画像生成にハマって2〜3日開発をサボった期間もある。気力ゼロで始めた人間の集中力なんてそんなものだ。ちなみにその時に遊んで作った記事がこれ。

Claude CodeにStable Diffusionで可愛い女の子を描かせてみた!7モデル比較
Claude CodeとComfyUIを使って、Stable Diffusionの人気モデル7種類で可愛い女の子の画像を一括生成。Beautiful Realistic、MeinaMix、Counterfeit、Animagine XLなど、同じプロンプトでモデルごとの違いを春夏秋冬4シーンで徹底比較しました。

それでも1ヶ月で出せたのは、AIのおかげとしか言いようがない。

逆に言えば、AIが担当した部分(要件定義・デザイン生成・CDK・Flutter基本実装)は合計で1週間程度で終わっている。人間が時間を使ったのは、Figmaの整理と審査対応という「AIの範囲外」の作業だった。

次にやること:オーケストレーション開発

今回はAIと1対1で開発を進めたが、次はもっと攻める。

CDKとFlutterのリポジトリを一つのフォルダにまとめて、複数のAIエージェントを並列で立てて一気に実装を進めさせる。俺はNotionでタスクを作って、出来上がったPRを見るだけという運用を目指している。

ただし、AIに自律的に開発させるとなると、セキュリティ周りの整備が必須になる。勝手にAPIキーを外部に送信したり、意図しないリソースを作成したりするリスクがある。今はその部分を詰めている最中だ。

まとめ:気力ゼロから1ヶ月でApp Storeへ

振り返ると、この1ヶ月で最も価値があったのは「AIで開発するプロセス」を確立できたことだ。

  • 要件定義:AIと壁打ちして、AIがNotionにまとめる
  • デザイン:AIが生成して、人間は微調整だけ
  • インフラ:AIが要件定義書通りに構築する。素人でもいける
  • 実装:AIが設計原則に従ってコーディングする。人間は設計とレビュー
  • テスト・CI:AIが一瞬で片付ける

「何を作るか」に悩んで動けないより、「AIでどう作るか」を確立する方が先だった。プロセスさえできれば、アイデアは後からいくらでも試せる。

気力ゼロでも、AIがあれば形になる。ただし、設計原則を自分で書けること、AIの出力をレビューできること、AIが苦手な領域を見極められること——この3つはAIが代替できない、人間の仕事だ。

各フェーズの詳細は別記事で深掘りする予定。

コメント

タイトルとURLをコピーしました