📑

【個人開発×Vibe Coding】はじめてのアプリリリースで月2,000円稼いだ話

に公開

こんにちは!この記事を読んでくださってありがとうございます。突然ですが、皆さんは「自分でアプリを作ってみたいけど、プログラミング経験もないし、何から始めたらいいか分からない…」なんて思ったことはありませんか?

実は何を隠そう、私自身がそうでした。

今回は、そんなプログラミングほぼ未経験の私が、Google Geminiと「Vibe Coding」を相棒に、初めてのアプリ「ゴルフマップ」を開発し、リリース。そして月2,000円の収益を達成するまでの体験談をお話ししたいと思います。

この記事が、同じように個人開発に挑戦したいけど一歩踏み出せない、誰かの背中を押せたら嬉しいです。

自己紹介

改めまして、私について少しだけ。普段はITとは少し離れた分野で働く、ごく普通の会社員です。プログラミングスキルといえば、学生時代にPythonを少しかじった程度で、SQLがなんとか読めるくらい。アプリ開発なんて、夢のまた夢だと思っていました。自分で何かを作るなんて、想像もしていませんでした。

そんな私が、なぜアプリ開発に挑戦しようと思ったのか。そして、どうやってそれを実現できたのか。その道のりをお伝えします。

「ゴルフマップ」ってどんなアプリ?

私が開発したのは、「ゴルフマップ」というスマートフォンアプリです。

「ゴルフマップ」は、地図を使って直感的にゴルフ場を検索し、料金比較をしながらお得なゴルフプランを簡単に予約できるアプリです。


検索画面はAirbnbを参考に素人がデザイン


地図の価格ラベルからゴルフ場を選択できる


プラン一覧が読み込まれ、楽天GORAから予約できる

都道府県を指定した検索はもちろん、プレー時刻、プレースタイル(連続枠、カート/昼食のありなし、3サム保証等)などの詳細な絞り込みにも対応しています。そして、楽天GORAと連携しているので予約で楽天ポイントが貯まるのも嬉しいポイント!

今すぐGOLF MAPをダウンロードして、快適なゴルフライフをお楽しみください!(宣伝)

不便益から生まれたアイデア

「なぜ、数あるアプリの中でゴルフアプリを? しかも地図検索?」と思われるかもしれません。実は、このアプリのアイデアは、私自身の「不便だな…」という体験から生まれました。

私自身ゴルフが趣味で、よく楽天GORAを使ってゴルフ場を予約していました。楽天GORAは楽天ポイントが貯められて便利なのですが、使っていて一つだけ不満があったんです。それは、「地図を見ながらゴルフ場を探せない」こと。リスト形式で表示されたゴルフ場を一つ一つ見て、「ここどこだっけ?」と地図アプリで確認して…という作業が、正直ちょっと面倒だったんですよね。特に知らない土地で探すときは。

「地図上でゴルフ場の位置と料金が一目で分かって、そのまま比較して予約に進めたら、絶対に便利なのに!」

この個人的な「不便」が、「ゴルフマップ」の原点です。まさに「ユーザー(自分)の課題解決」ですね。

そして、個人開発でアプリをリリースする上で考えたのが収益化の壁です。個人開発のアプリって、なかなかユーザーが増えにくいのが現実。だから、ニッチでもいいからユーザーに刺さる機能を持たせつつ、広告単価が高いジャンルを選ぶことが重要だと考えました。

その点、ゴルフは比較的広告単価が高いジャンル。そして、楽天さんは各種APIを豊富に提供していて、アフィリエイトの仕組みもある。私自身が楽天GORAユーザーだったこともあり、「これだ!」と。

結果として、リリースから数ヶ月で、アクティブユーザー数約50人で月収益約2,000円を達成することができました。金額としてはまだまだ小さいですが、自分が作ったもので誰かの役に立ち、それが収益に繋がるというのは、本当に大きな喜びでした。


4月の収益(楽天アフィリエイト)

個人開発でVibe Codingを使う上での工夫

さて、アプリのアイデアは固まったものの、前述の通り私には開発スキルがほぼありません。「どうやって形にしよう…」と途方に暮れていたときに出会ったのが、FlutterとVibe Coding (Roo Code) でした。

  • Flutterを選択した理由: AndroidとiOS、両方のアプリを同じプログラム(Dart言語)で開発できるのが最大の魅力でした。「一度書けばどこでも動く」なんて、初心者にとっては夢のような話です。
  • 地図API: 地図機能にはGoogle Map APIを採用。リッチなマップラベル(ゴルフ場のアイコンなど)を置ける点と、ユーザー数が少ないうちは無料枠で十分賄える点が決め手でした。
  • データベース: ゴルフ場のデータやユーザーのお気に入り情報などを保存するために、FirebaseのFirestoreを選びました。こちらも無料枠が手厚く、Flutterとの親和性が高くて実装が比較的楽だったのが良かったです。
  • ゴルフ場情報取得: 肝心のゴルフ場検索、詳細情報の読み込み、アフィリエイトリンクの生成などは、楽天Webサービスのドキュメントを必死に読み解きながら実装しました。正直、ここが一番苦労したかもしれません…。APIの仕様とにらめっこする日々でした。
  • デザイン: センス皆無の私にとって、デザインは最大の難関(笑)。そこで、UI/UXが優れていると評判のアプリ、特にAirbnbのデザインを参考にさせてもらいました。「使いやすさ」を最優先に考え、ボタンの配置や情報の見せ方などを研究しました。

そして、この開発プロセス全体を力強くサポートしてくれたのが、Vibe Coding(私はVSCodeの拡張機能であるRoo Codeを使用) です。これは、簡単に言うと「AIに指示を出すと、コードを書いてくれたり、修正してくれたりする」ツール。まさに「AIペアプログラマー」がいるような感覚でした。

とはいえ、AIも万能ではありません。特に最初のうちは、思った通りに動いてくれなかったり、エラーが出たり…。AIと上手く付き合っていくためには、いくつか工夫が必要でした。

コスト節約

AIコーディングツールを使う上で気になるのが、やはりコストですよね。高機能なモデルは素晴らしいですが、個人開発では費用も抑えたいところ。私は、Gemini 1.5/2.0 Flash をメインで利用しました。最新の高性能モデルには劣る部分もありますが、コストパフォーマンスに優れていると感じました。その結果、リリースまでにGemini(API利用料)にかかった費用は、なんとたったの10ドル! これには自分でも驚きました。工夫次第で、AI開発も意外と低コストで始められるんです。

rulesの作成

Gemini 1.5/2.0 Flashのような比較的性能が抑えられたモデルを使う場合、特にコードの差分修正(apply_diff)でエラーが頻発することがありました。AIが提案してきた修正を適用しようとするとエラーが出て、それをAIに伝えてもまた同じようなエラーが出て…という「apply_diffエラーループ」にハマり、何度心が折れそうになったことか。

そこで編み出したのが、Roo Codeの「rules」機能を使った「おまじない」です。具体的には、以下のような指示をrulesに記述しました。

重要
実装前にlibにあるディレクトリー内の関連しそうな.dartファイルを確認してください。
apply_diffでエラーが発生した場合は、一度元のファイルを再読み込みしてください。
それでもapply_diffでエラーが解決しない場合は、差分修正ではなく、ファイル全体を書き換える形で修正案を提示してください。
テストコード(ロガー)を書いて動作確認しながら、ユーザーに説明しながらコードを書きます。
反面、現在のコンテキストに応じた処理は苦手です。コンテキストが不明瞭な時は、ユーザーに確認します。
設計
pubspec.yamlの編集は禁止です。既に追加しているパッケージのみを使用してください。
クラスとメソッドとメンバー変数に対し、適切なドキュメントコメントを日本語で書いてください。
処理に対しても適切に日本語のコメントを加えてください。
余計なコメントを書かないでください。処理の削除時はコメントも削除してください。

この「おまじない」のおかげで、エラーのループが劇的に減り、開発効率が格段に向上しました。AIに「こうしてほしい」という明確な指示を与えることの重要性を痛感しましたね。

ちなみに、ここで紹介したrulesの内容は、インターネット上の情報を参考にしつつ、私自身があれこれ試行錯誤しながらカスタマイズしたものです。なので、これが万能な解決策というわけではなく、あくまで「こんな工夫の仕方もあるんだな」という程度に参考にしていただけると嬉しいです。皆さんの環境や目的に合わせて、ぜひ色々と試してみてください。

1ファイル分割

もう一つ、AIとの協業で気づいた重要なポイントがあります。それは、1つのファイルにあれもこれもと大量のコードを詰め込むと、apply_diffエラーが発生しやすくなるということ。

おそらく、AIにとっても長すぎるコードや複雑すぎるコンテキストは理解しにくいのでしょう。これは人間がコードを書く上でも同じですよね。そこで、機能を細かくモジュール化し、ファイルを適切に分割しながら実装を進めることを常に意識しました。例えば、「地図表示ロジック」「フィルター処理ロジック」「API連携ロジック」といった具合です。

これにより、AIがコードを理解しやすくなり、的確な修正案を出してくれる確率が上がりました。結果的に、開発スピードもアップし、メンテナンス性も向上したと感じています。

まとめ

こうして、たくさんの試行錯誤と、Vibe Codingという頼れる相棒のおかげで、なんとか「ゴルフマップ」を世に送り出すことができました。月2,000円という収益は、大きな金額ではないかもしれません。でも、自分のアイデアが形になり、それが誰かの役に立ち、さらには少しでも収益を生み出すというのは、本当に言葉では言い表せないほどの感動と達成感がありました。

Vibe CodingのようなAIツールは、私のようなプログラミング初心者にとって、まさに革命的な存在です。もちろん、AIに丸投げできるわけではなく、上手く指示を出し、時にはAIの提案を疑い、そしてAIと一緒に成長していく「コツ」が必要だと感じました。

もし、この記事を読んで、「自分も何か作ってみたいけど、スキルがないし…」と躊躇している方がいたら、ぜひ一歩踏り出してみてください。今の時代、AIという強力なサポーターがいます。あなただけのアイデアを、AIと一緒に形にしてみませんか?

「ゴルフマップ」も、まだまだ改善したい点が山積みです。これからもユーザーさんの声に耳を傾けながら、もっと便利で、もっと楽しいアプリに育てていきたいと思っています。

ぜひ一度、「ゴルフマップ」をダウンロードして使ってみてください!そして、もしよければ感想や改善点など、お気軽にお知らせいただけると、泣いて喜びます。

最後まで読んでいただき、ありがとうございました! もし気に入って頂けましたら、よろしければSNSでのシェアをお願いします!(初めての投稿なので、多くの人の目に触れられるか不安なのです。。)

Discussion