3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

AI駆動開発で挑んだ服装提案アプリ、そして僕は開発を止めた

3
Posted at

はじめに

こんにちは、naokiです。

最近、「AI駆動開発」なんて言葉をよく耳にしますよね。AIと「対話」しながら開発を進めることで、昔では考えられないスピードでアイデアを形にできる時代になりました。

就活時から「自分で作って自分で売る」ことができるエンジニアを目指していたので、この潮流は追い風でした。

その大きな可能性にワクワクして、「これで何か作ってみたい!」と勢いよく個人開発の世界に飛び込んだ一人です。

この記事で書きたいのは、キラキラした成功体験ではありません。 むしろ、その逆です。AIという強力な相棒がいても、個人開発にはやっぱり特有の難しさや、メンタル的にキツい瞬間が訪れます。

この3週間、僕がどんな風に開発を進め、何に悩み、どんな葛藤の末に「開発中止」という決断を下したのか。そのリアルな道のりを、ありのままに記録として残そうと思いました。

この僕の失敗談が、同じようにAIとプロダクト作りに向き合う開発者の皆さん、特に「このまま進めていいのかな…」なんて壁にぶつかっている方にとって、少しでも共感できる部分や、何かのヒントになれば嬉しいです。

この記事を読んでほしい人

  • AIを使って個人開発に挑戦している、またはこれから挑戦したいと思っている方
  • 開発の途中で「このアプリ、本当に価値あるのかな?」と悩み、モチベーションが揺らいでいる方
  • カッコいい成功事例だけじゃなく、リアルな失敗談を知りたい方

この記事で話すこと/話さないこと

✅ 話すこと

  • 僕が実践したAI駆動開発のリアルな流れ
  • 開発して感じた良いこと、大変だったこと、そして心の葛藤
  • 時間もお金もかけたのに、なぜ開発を止めたのか?その正直な理由

❌ 話さないこと

  • VercelやSupabaseなどの具体的な使い方
  • Google Maps APIやOpenWeatherMap APIなどの詳しいコード解説
  • AIモデルの技術的なお話

こんなアプリ、作ろうとしてました

僕が作ろうとしていたのは、「今日のあなたに、最適な服装を。」をコンセプトにした、とてもシンプルな服装提案アプリです。

image.png

【アプリの機能】

現在地と目的地、そして移動時間を入力すると、それぞれの場所の天気予報(気温や雨の確率など)をAPIで取ってきてくれます。

さらに、その情報をもとにAIが「今日の気候なら、こんな服装が一日快適ですよ」と、具体的なコーディネートを提案してくれる、というものです。

スクリーンショット 2025-07-16 090646.png

【開発のきっかけ】

このアプリを作ろうと思ったきっかけは、僕自身のすごく個人的な悩みからでした。

特に春や秋みたいに、朝と夜で気温が全然違う日ってありませんか?

朝の気温だけ見て薄着で出かけたら、帰り道で凍えながら帰る…なんて経験、きっと誰にでもあるはず。

朝のバタバタしている時間に、「今日、何着ていこう…」とクローゼットの前で固まってしまう時間。地味ですけど、確実なストレスなんですよね。

「天気予報を見ればいいじゃん」と言われたら、まさにその通り。

でも、気温の数字だけ見ても、実際の体感温度って分かりにくくないですか?湿度や風の強さ、日中の気温の変化まで考えて服を選ぶのって、意外と面倒だったりします。

この「ちょっとした面倒」をテクノロジーで解決して、毎朝の数分間を快適にできたら最高だな、と思ったのが始まりでした。

開発を支えてくれた技術たち

今回の開発では、イマドキの技術とAIの力をフル活用する構成にしました。

  • フロントエンド: TypeScript, Next.js (React)
  • バックエンド: TypeScript, Next.js (API Routes)
  • サーバー/ホスティング: Vercel
  • データベース: PostgreSQL (Supabase)
  • AIエージェント: Claude Code
  • 決済API: Stripe
  • 地点取得API: Google Maps Platform
  • 天気取得API: OpenWeatherMap
  • AIモデル: OpenAI GPT-o4 mini

できるだけ効率よく、スムーズに開発を進めたかったので、フロントとバックをNext.jsとTypeScriptで統一。デプロイはVercelで構築しました。データベースにSupabaseを選んだのは、手軽にPostgreSQLが使えて、認証機能なんかもサクッと導入できるからです。

そして、今回の主役がAI。コーディングの相棒としてClaude Codeを、服装提案の頭脳としてOpenAIのGPT-o4 miniを使いました。

開発の裏側:僕の投資

  • AIへの投資: API利用でSonnet4を6時間回しただけで、20ドルを吹っ飛んだ経験があったのと、Claude Opus4を存分に使いたかったので、月額$100のMaxプランを契約。
    GitHub Actionsとも連携させて、コードレビューもAIに手伝ってもらいました。
     

  • 総開発日数: 約3週間

    • 平日: 1〜2時間/日
    • 休日: 4〜6時間/日

AIと二人三脚ですすめた開発の全手順

これから個人開発をする誰かの参考になればという思いを込めて、僕が実際にどう開発を進めたのか、その手順を具体的に書いておこうと思います。

Step 1: プロジェクトの土台作り

まずは、アプリの骨格から。

Next.jsプロジェクトを作成:

npx create-next-app@latest kion-code --typescript --tailwind --eslint

Gitで管理して、GitHubにアップ:

git init
git add .
git commit -m "Initial commit"
git remote add origin [Your-Repository-URL]
git push -u origin main

この時点でVercelと連携させておくと、pushするたびに自動でデプロイしてくれるので非常に楽でした。

Step 2: AIアシスタント(Claude)の準備

開発の相棒、Claudeとの連携を固めます。

以下のドキュメントを見て、環境整備を行いました。

Step 3: 設計フェーズ - AIとブレスト

コードを書き始める前に、AIとじっくり対話して設計の解像度を上げていきます。ここを丁寧にやるかどうかが、後の開発効率に大きく影響すると感じました。

  1. 要件定義 (何を作るか): まずは自分の言葉で「どんな悩みを解決したい?」「そのために絶対必要な機能は?」を書き出します。初めは自分の頭で考え、アドバイスをもらう程度でAIを使いました。
     
  2. 基本設計 (機能を具体的に): 次に、書き出した要件から、必要な画面と機能をリストアップ。この時、「これがないと始まらない」コア機能と、「あったら嬉しいな」くらいのサブ機能に分けるのが超重要です。
    • コア機能: 場所の入力、天気情報の表示、服装の提案
    • サブ機能: ユーザー登録、過去の提案履歴、お気に入り、決済機能
       
  3. 詳細設計 (AIとの対話): ここからAIの出番。基本設計をインプットにして、AIとブレストを繰り返します。
    • 使ったAI: 主にGeminiとClaude。
    • 僕なりの使い分け: 感覚的なものですが、アプリ全体の構成やアーキテクチャみたいな大きな話はGeminiと、具体的なコードレベルの設計や実装の相談はClaudeと話すのが、すごくしっくりきました。
       
      「このアプリのパス構成、どう思う?」とGeminiに聞いて、出てきた案を元に「じゃあ、このコンポーネントの設計はどうしようか?」とClaudeと詰めていく感じです。

 
APIのパス設計、DBのテーブル構造、コンポーネントの分け方など、一人だと延々と悩んでしまうような部分も、AIに相談することで客観的な意見がもらえて、スムーズに意思決定できました。

Step 4: 実装フェーズ - AIとペアプロ気分

設計図ができたら、いよいよ実装です。ここでもAI(Claude Code)をフル活用しました。

  1. まずは見た目から: ユーザーが直接触るフロントエンド、それもコア機能から作っていきました。やっぱり、目に見えて動くものが出来上がっていくのは、モチベーション維持に繋がります。
     

  2. AIへの指示は「小さく、具体的に」: AIに実装をお願いするときの最大のコツは、欲張って大きな指示をしないこと。「このアプリ、まるっと作って」みたいな無茶振りは、期待外れのコードが出てくるだけです。

    良い指示の例: 「Tailwind CSSを使って、現在地と目的地の入力欄が2つと、提案ボタンが1つあるReactコンポーネントを作って。ファイル名はLocationForm.tsxで、入力された値は親に渡せるように、propsで関数を受け取れるようにして。」

    こんな風に、機能ごと、コンポーネントごとにタスクを分解して、一つずつ「作って→確認して」を繰り返す。この地道な作業が、結局一番の近道でした。
     

  3. 裏側の仕組みを作る: フロントの主要な画面が見えてきたら、API(バックエンド)の開発へ。ここでも「GoogleのAPIで場所の情報を取ってきて、その情報を天気APIに渡して、最終的にいい感じのJSONで返してくれるAPI作って」というように、一つずつ具体的な指示を積み重ねていきました。

開発して感じたこと

開発を始めた最初の2週間は、正直、最高に楽しかったです。AIが魔法のようにコードを書いてくれて、今までなら何日もかかったであろう機能が、数時間で形になっていく。アイデアがどんどん動くUIになっていくのを見て、「これはいける!多くの人の悩みを解決できるし、お金も稼げるかも!」なんて、本気で思っていました。

でも、開発がコア機能からサブ機能、特にマネタイズのためのStripe連携あたりに進んだ頃から、心の中にモヤモヤとした違和感が生まれ始めました。

adrian-swancar-7Ssnka8OqLM-unsplash.jpg

挫折①:「これ、本当にお金払って使いたい?」という疑問

最大の壁は、僕自身のプロダクトに対する熱が、急速に冷めていったことでした。きっかけは、決済機能を実装しているとき。ふと、手が止まりました。

「もし自分がユーザーだったら、このアプリに月額料金を払うだろうか?」

その問いに対する僕の答えは、悲しいくらい明確に「ノー」でした。

  • 代わりはいくらでもある: 冷静に考えれば、服装に悩んだら、今ある天気アプリを開けばいい。Googleで「東京 気温 服装」と検索すれば、いくらでも情報は出てきます。僕のアプリが提供できる価値は、その一手間を省く「ちょっとした便利さ」だけ。そのために、わざわざお金を払う人はどれくらいいるんだろう?
     
  • 課題がニッチすぎる: 「朝の服装選びに悩む」という課題は、確かにある。でも、それは多くの人にとって「死ぬほど困っている」ことではないんです。ほとんどの人は、数分悩むか、何も考えずに適当な服を着て家を出る。この小さなマーケットで、有料ユーザーを見つけるのは、想像以上に大変そうだぞ、と。
     
  • 自分が使わないかも: そして何より決定的だったのが、「開発者の僕自身が、完成しても毎日使わないかもしれない」という予感でした。自分が一番のファンになれないプロダクトに、情熱を注ぎ続けることはできませんでした。

挫折②:個人開発でマネタイズする人、マジですごい

この経験を通して、個人開発でしっかり収益を上げている人たちへの尊敬の気持ちが、爆発的に高まりました。本当に、本当にすごいです。

技術があれば、アプリは作れます。でも、アプリが作れることと、それがビジネスになることは、全く別のスキルが必要なんだと痛感しました。

ユーザーに「使ってみたい」と思わせて、さらに「お金を払ってもいい」と思わせる価値を見つけ出し、それを届けきる力。ユーザーを一人集めることすら大変なのに、それを事業として成り立たせている人たちは、もはや尊敬しかありません。

それでも、得られたものは大きかった

開発は途中でやめてしまいましたが、この3週間は決して無駄じゃありませんでした。むしろ、たくさんの学びがありました。

  • API連携の経験値: 普段何気なく使っている地図アプリや天気予報サイトが、裏側でどう動いているのか。実際にGoogleやOpenWeatherMapのAPIを触ってみることで、その仕組みを肌で感じることができました。この経験は、間違いなく今後の開発の引き出しになります。
     
  • AIとの上手な付き合い方: AIは万能の魔法使いではなく、あくまで超優秀な「アシスタント」なんだと分かりました。何をしたいか明確に伝え、出てきたものしっかりレビューし、最終的に判断するのは自分。この「AIを使いこなす」感覚は、これからのエンジニアにとって、すごく大事なスキルになるはずだと思います。

これからどうするか:失敗をバネに、次の一歩へ

今回のプロジェクトは、野球でいうところの「壮大な素振り」だったのかもしれません。思いっきりバットを振って、結果は空振りだったけど、確実に自分のフォームは良改善し始めている。そんな感覚です。

この経験から僕が得た一番の教訓は、いきなりホームラン(マネタイズ)を狙うんじゃなくて、まずはバットにボールを当てる(多くの人に使ってもらう)経験を積むべきだ、ということです。

なので、僕の次の挑戦は、こんな風に考えています。
 

  1. 無料アプリから再挑戦する: まずは収益を一切考えず、純粋に「自分が心から欲しいもの」や「友達が喜んでくれそうなもの」をテーマに、小さな無料アプリをいくつか作ってみます。
     
  2. 「使われる」経験を積む: アプリを世に出して、感想をもらって、改善する。たとえユーザーが10人でも、その人たちが喜んでくれるプロダクトを作れたら、それは僕にとって大きな成功体験になるはずです。
     
  3. 今回の学びをフル活用する: 今回得たAPIの知識やAIとの連携ノウハウがあれば、次の開発はもっとスムーズに進むはず。

 
今回の開発は、結果だけ見れば「失敗」ですが、やって良かったと思っています。
このもどかしさと学びを力に変えて、また新しい開発に挑戦しようと思います。

もし、この記事を読んでくれている皆さんも、同じように道に迷っていたら、開発を止めることや、方向転換することも、次へ進むための一歩だと思います。

ここまで読んでくださりありがとうございました。

3
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
3

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?