1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

個人開発でAndroidアプリを1ヶ月でリリースした。502コミットの92%はAIが書いた

1
Last updated at Posted at 2026-06-14

TL;DR(3行)

  • 5/10 に書き始めた Android アプリ GitMD を、約5週間で Google Play 本番リリースまで持っていった。
  • 502コミット / Kotlin 約6万行 / テスト136ファイル。うち 460コミット(約92%)に AI(Claude)が Co-Author として入っている
  • カギは「AIに丸投げ」ではなく、複数のAIを分業させ、機械的なテストで暴走を抑えるやり方だった。

作ったもの:GitMD

GitHub リポジトリをそのままノートの保存先にする Markdown ノートアプリです。

  • 書いたノートは Git でコミット & 同期され、全部が自分のリポジトリに残る(ベンダーロックインなし)
  • Jetpack Compose + Material3 製。エディタ、全文検索、タグ、アーカイブ/ごみ箱、PDF/HTML エクスポート、Mermaid・数式(LaTeX)プレビューまで
  • GitHub / GitLab に加えて Dropbox / Box / Google Drive 同期
  • 広告なし・サブスクなし。3リポジトリ目以降だけ買い切り Pro

↑ Play Store 掲載の実機スクリーンショット。右端はアプリ内の AI 執筆支援(自分の API キーで Gemini / OpenAI / Anthropic を使う BYOK 機能)——「作るのも AI、書くのも AI」。

1ヶ月の成果を「数字」で

指標
開発期間 2026/5/10 → 6/14(約5週間
コミット数 502
Kotlin コード 約59,800行 / 342ファイル
テスト 136ファイル(ユニット・スクショ回帰・E2E)
処理した Issue/PR 参照 249件
AI Co-Author 率 460 / 502(約92%)
対応プラットフォーム Android(本番リリース)/ Desktop / iOS(PoC 中)

週ごとのコミット推移(実データ)。後半に向けて落ちるどころか加速しているのが、AI 開発らしいところ:

W19 (5月2週)  ██████████                      50
W20 (5月3週)  ████████                        42
W21 (5月4週)  ███████████████████             97
W22 (5月5週)  ████████████████████████████   128  ← ピーク
W23 (6月1週)  ███████████████                 75
W24 (6月2週)  ██████████████████████         110

1人の個人開発で、5週間でこのスループットが出るのは、正直なところ自分の手で書いていたら絶対に無理でした。

どうやって作ったか(ここからが本題)

「AI すげー」の中身を分解すると、効いたのは1つの賢い AI ではなく AI を“チーム”として組んだことでした。

1. 主ドライバは Claude Code

開発はターミナルの Claude Code を中心に回しました。コードを書くのも、テストを走らせるのも、git 操作も、リリースのタグ打ちも AI がやります。私の仕事は基本的に 「何を作るか」を決めて、出てきた差分をレビューすること。

リポジトリ直下に CLAUDE.md(プロジェクトの作法)と、セッションをまたいで効く永続メモリを置いて、毎回ゼロから説明しなくていいようにしたのが地味に効きました。

2. マルチエージェント分業:Opus が司令塔、Sonnet が実働

全部を最上位モデルにやらせると遅くて高い。なので役割を分けました。

  • 判断・設計・レビューは賢い Opus(司令塔)
  • 量産・機械作業(似た画面を量産、テストを足す、文言を直す)は Sonnet のサブエージェントに委譲

「考える所だけ高いモデル、手を動かす所は速いモデル」。この分業だけで体感のスループットが何倍にもなりました。

3. ローカル LLM まで動員した“3段カスケード TDD”

さらに実験的に、Opus → Sonnet → ローカル LLM の3段ループを組みました。

  1. Opus が仕様とゲート(やりすぎ・ズルの検出)を担当
  2. Sonnet が「まだ通らない仕様テスト」を先に書く(TDD の RED)
  3. ローカル LLM(LM Studio で動かす Qwen2.5-Coder-14B)がそのテストを緑にするコードを書く(GREEN)

ここで得た知見が面白くて——「決定論的なテストが正しさを丸ごと検証してくれる時だけ、安いローカル LLM は黒字になる」。テストが正解を機械的に保証してくれるなら、実装役は安いモデルで十分。逆に reasoning が暴発するタイプのモデルは、勝手にスコープを広げて壊すので実装役には不向きでした。

4. 夜は勝手にテストが増える:自走改善ループ

「落ちている/足りないテストを1件ずつ足して緑にする」だけのループを組んで、夜間に無人で回すようにしました。Opus が司令塔、Sonnet が実働。成果は専用ブランチに積むだけで main には触らせない——という安全弁つき。朝起きるとテストが増えています。

5. git worktree で複数 AI を並行に走らせる

AI は待ってくれないので、複数セッションを同時に走らせたい。そのまま同じチェックアウトでやると衝突するので、作業ごとに git worktree で隔離しました。「A セッションがエディタをいじってるあいだに B セッションが同期周りを直す」みたいな並行開発が、1人でもできます。

6. AI の暴走は「人」じゃなく「機械」で止める

AI は平気でデグレを入れます。実際、開発中に「新規ノート作成 → 画面回転でクラッシュ」というバグを AI 自身が埋め込みました。これを毎回人間が目視で見つけるのは無理。なので機械的なガードを厚くしました

  • スクリーンショット回帰テスト(Roborazzi、ライト/ダーク両方)で UI の見た目の変化を検出
  • E2E テストを Robolectric・実機エミュレータ・Desktop ヘッドレスの3経路で
  • AI によるコードレビュー(PR を開くと別の Claude が指摘する)

「AI が書く → AI がレビューする → テストが守る」。速度は AI に、安全は決定論的なテストに寄せるのが、結局いちばん安定しました。

正直に:ハマったところ・AI の限界

「すげー」だけだと嘘になるので、効かなかった/苦労した所も。

  • AI は自信満々でデグレを入れる。 上の回転クラッシュが典型。テストがないと止められないので、テストファースト+スクショ回帰は“保険”ではなく“前提”でした。
  • 下位モデルは万能じゃない。 決定論ゲートがある純ロジックは安いモデルで回るが、ふわっとした UI 判断は上位モデルじゃないと無理。
  • CI 課金は普通に効く。 無料枠を使い切って一時 CI を止め、テストはローカル+AI レビュー運用に切り替えました。AI 開発は CI を回す回数も増えるので、ここはコスト設計が要ります。
  • AI への“課金”は前提。 上位モデルを常用するので、それなりのプラン課金は必要。ここは正直、先行投資です。

何が効いたか(持ち帰り)

  1. AI は1体より“チーム”。 役割(司令塔/実働/実装)でモデルを使い分けると速い・安い。
  2. 正しさは決定論に寄せる。 テストが機械的に正解を保証するほど、AI に任せられる範囲が広がる。
  3. main を守る安全弁。 worktree 隔離+専用ブランチで、自走させても本番は壊れない。
  4. コンテキストを資産化する。 CLAUDE.md +永続メモリで毎回の説明コストをゼロに近づける。

これから

すでに Compose Multiplatform で Desktop 版、さらに libgit2 を使った iOS 対応の PoC(Phase 0 = GO 判定)まで進んでいます。マルチプラットフォーム展開も、同じ AI ワークフローでどこまで行けるか試していきます。

まとめ

5週間・502コミット・約6万行・本番リリース。そのうち92%のコミットに AI が入っている

「AI にコードを書かせる」は、もう“1個のチャットに丸投げ”ではありません。複数の AI を役割分担させ、テストという決定論で囲って、人間は判断とレビューに回る——この形に組み替えた瞬間、個人開発のスループットが文字通り桁で変わりました。

GitMD は Google Play で公開中です 👉 https://play.google.com/store/apps/details?id=com.ymatsuza.gitmd


この記事自体も、開発に使ったのと同じ Claude Code に下書きさせ、git の実データ(コミット数・LOC・Co-Author 率)で裏取りして書きました。

1
1
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
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?