AIと二人三脚、5日間で10機能。個人開発アプリ「くまモビ」怒涛のアップデート記録

日常パソコン部
この記事は約5分で読めます。

こんにちは、しらかわるーむの白川秋です。

「アプリに実装したい機能が10個ある。でも自分は一人。しかも本業もある」——個人開発をしている人なら、この絶望的な足し算に覚えがあるんじゃないでしょうか。

僕が開発している熊本の観光×乗換案内アプリ「くまモビ」も、まさにその状態でした。クローズドテストは始まったものの、やりたいことリストは膨らむ一方。そこで今回、AIアシスタントのClaudeと本気のペアプログラミングで挑んだところ、8月4日の夜に決めた10機能が、8日の夜には全部動いていました。5日間です。

もちろん、順風満帆ではありません。通知が来なくて20分待ちぼうけしたり、ビルドが謎のエラーで割れたり。今日はその舞台裏を、失敗談込みで正直に書きます。

スポンサーリンク

この記事のポイント

  1. 個人開発アプリに5日間で10機能を実装した実録と役割分担を公開
  2. ハマった不具合はすべてlogcatで真因確定してから直すのが鉄則
  3. AIは「書く係」ではなく「調べて検証して直す係」として使うと強い

8分0秒でわかるまとめ動画

実装した10機能、ぜんぶ見せます

まず決めたのは優先順位です。Claudeに過去の開発チャットを全部読み返してもらい、「リリース前に効くもの順」に並べ替えました。実装したのはこの10個。

機能ひとこと
1リリース前TODOの回収テスト用設定の戻し忘れをフラグ1つに一元化
2検索履歴・お気に入り毎日同じ検索をする人のためのワンタップ再検索
3クーポン使用記録店舗への実績報告に使える集計をこっそり裏で
4リアルタイム運行情報バス4社の遅延をGTFS-RTで自動表示
5運賃表示経路検索の結果に「いくらかかるか」を追加
6バリアフリー情報車いす・多目的トイレ・エレベーターの有無
7オフライン地図圏外の山あいでも地図が出る事前ダウンロード
8スタンプ全制覇の報酬コンプリートでクーポン解放
9実績ダッシュボード訪問数・クーポン利用をグラフとCSVで可視化
10プッシュ通知お知らせと運行情報を4言語で配信

こうして表にすると涼しい顔をしていますが、一つひとつに小さなドラマがありました。いくつか紹介します。

事件簿①:通知が来ない。20分待った

プッシュ通知を実装して、いざ配信テスト。……来ない。5分待っても、20分待っても来ない。

こういうとき、僕とClaudeの間には鉄の掟があります。「真因を確定してから動く」。勘で直さない。証拠はAndroidのログ(logcat)に必ず残っているからです。

ログを渡すと、Claudeが一行を指差しました。「14時05分42秒、メッセージは届いています」。……え、届いてる?

犯人は僕でした。プッシュ通知はアプリを開いたままだと表示されない仕様(OSが出すのはバックグラウンド時だけ)で、僕はPCで配信操作をしながら、スマホでアプリを開いて待ち構えていたんです。ログには17秒後に僕がアプリ内でキーボードを触った記録まで残っていました。完全犯罪ならぬ完全自白です。

この一件から「アプリを開いているときは画面上部にバナーを出す」機能が生まれたので、失敗も無駄にはなりませんでした。

事件簿②:ビルドが割れた。犯人はバージョン番号

通知機能はネイティブのライブラリ追加が必要で、ビルドし直したらエラーの嵐。日本語で「シンボルを見つけられません」と言われても、こっちが見つけたいくらいです。

これもClaudeの見立ては早くて、「Firebaseのライブラリ群は全部同じバージョンに揃えるのが鉄則。1個だけ新しいのが入ったはず」。確認したら図星で、他が23.8.8のところに26.1.0が混入していました。番号を揃えて一発解決。エラーメッセージが呪文に見えても、原因はだいたい地味なんですよね。

事件簿③:地図5MBのはずが27MBだった

オフライン地図は、ダウンロード容量を「約5MB」と見積もっていたら、実測27MB。5倍です。

原因は日本語でした。地図タイル自体は小さいのに、漢字のフォント一式が20MB以上あって、これが必ず同梱される。日本語アプリの宿命みたいな話で、表示を実測値に直して一件落着。ちなみに実装前には「地図サービスの規約的に一括ダウンロードして良いのか」もClaudeに調査してもらいました。使っているOpenFreeMapは回数無制限を明言している太っ腹なサービスで、感謝しつつ節度ある範囲(熊本県内だけ)に絞っています。

AIペアプロ、実際どう役割分担したのか

5日間やってみて、分担はきれいにこうなりました。

僕(人間)の仕事は、優先順位を決める・実機でテストする・logcatを取る・「なんか変」を言語化する。Claudeの仕事は、過去チャットから文脈を思い出す・規約や世界標準のやり方を調べる・コードを書く・書いたら自分で構文チェックまで通す。

特に効いたのは、Claudeが「動かないときに実物を取り寄せて調べる」ところ。オフライン地図のAPIが動かなかったとき、Claudeは自分の環境に同じライブラリを実際にインストールして、型定義ファイルを読み、「このバージョンではAPI名が変わっています」と証拠付きで特定しました。推測で3回書き直すより、1回調べるほうが速い。人間側の教訓としても持ち帰りたい仕事ぶりでした。

まとめ:個人開発の「一人」の定義が変わった

10機能を積んだくまモビは、いまクローズドテストで最終調整中です。振り返って思うのは、AIペアプロの価値は「コードを速く書くこと」ではなく、「調査・検証・記憶をアウトソースして、人間は判断とテストに集中できること」だということ。

個人開発は相変わらず一人です。でも「一人+よく調べる相棒」は、思ったよりずっと遠くまで行けます。やりたい機能リストを前に固まっている開発者のみなさん、まず相棒に「優先順位をつけて」と頼むところから始めてみてください。

くまモビの一般公開が近づいたら、またこのブログでお知らせします。それでは、また次の記事で!

白川秋
白川秋

ではでは、参考までに

コメント

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