💻

Vibe Coding を2週間くらい続けてみた

に公開

Vibe Coding を2週間くらい続けてみた

CursorやClaudeなどのAIツールを取り入れながら、CameraXベースのカメラアプリを2週間かけてリビルドした記録です。技術的なアップデート内容(Camera2→CameraX、DataBinding→Compose など)から、Vibe Codingによる開発スピードの向上、AI活用のメリット・注意点、そして今後の展望について率直にまとめました。「AI時代における個人開発のリアル」が気になる方におすすめの記事です。

作っているもの

CameraXを使ったカメラアプリ

https://github.com/jtakumi/VtuberCamera

こちらは私が一人で終業後に小さく作っているカメラアプリです。
もともとこのアプリは2年ぐらい前にCamera2を使ったカメラアプリとして作成していました。

https://qiita.com/jtakumi/items/b262fd460a29aa8cfffc

しかし、その後モチベーションがなくなり、2年ほど放置。

ところが最近になってVibe Codingの波が来て、私個人でもCursor、Claudeなどを導入したため、このアプリを育て直すことに決めました。


使っているツールと役割

ここでは私が開発で使っているツールと、それぞれの果たす役割をご紹介します。

  • Cursor
    主に素早くソースコードに変更を加えたいときに使用するエディタ。これによって、手作業で行ったら30分はかかる作業が2〜3分で完了するようになりました。

  • Claude
    Cursorでは拾いきれなかったバグの検出や、プロジェクトファイルを読み込ませて修正したり、リファクタリング計画を立てる際に使用しています。現状の理解と今後の計画がよりスムーズに立てられるようになりました。


2週間でやってきたことはこちら

この2週間で行ってきたことは以下のとおりです。

  • Camera2 → CameraX への置き換え
  • DataBinding から Compose への置き換え
  • Coil 導入
  • MVP → MVVM への変更
  • Android 15 への対応
  • フラッシュライト対応
  • その他、ライブラリのアップデート

Camera2は実装のために複雑なコードを必要とし、端末の互換性にも若干問題があります。そこで、より新しいカメラライブラリであるCameraXに置き換えました。
また、UIは従来のXMLベースの命令型から、Jetpack Composeを使った宣言型UIに変更。これにより、より現代的な画面を簡単に実装できるようになりました。


感じたメリット

AIツールを導入して感じられたメリットは以下のとおりです。

  • 作業スピードの大幅な向上
  • 現状の実装から、どこを対応すべきか目星がつけやすくなった
  • READMEなどのドキュメント更新の手間がかなり軽減された
  • 精神的な負担が減り、終業後の個人開発が継続しやすくなった

特に全体のスピード感は大きく向上しました。XMLからComposeへの移行では、通常2日がかりで行うような作業を即日で完了できたほどです。
また、開発の中で後回しにされがちなドキュメント更新もスムーズに行えたおかげで、過去最高に整ったREADMEが作れたと感じています。


行う上での注意点

ただし、Vibe Codingにもいくつか注意点があります。たとえば、以下のようなことです。

  • 指示の仕方が悪いと、既存の機能にまで影響が出てしまう
    • 例:カメラ切り替え機能を指示したとき、カメラ画面が真っ暗になってしまった
  • 開発者がある程度の仕様や技術知識を持っていないと、AIの提案を適切にレビューできない
  • 理解しないままコピペすると、エラー解消でつまずき、かえって開発が進まなくなる
    • 例:Android 15 対応時にコピペしすぎて、エラー連鎖に陥った

特に、自分が理解しきれていないライブラリや権限まわりについては、しっかり読み込んだうえで判断する必要があると反省しています。

Android 15 対応のときには、エラーを解消しても別のエラーが出るという無限ループに陥り、その日は作業を断念しました。
翌日はその反省を踏まえ、AIの提案を理解したうえで作業したところ、無事に作業を完了できました。


今後もうまくAIとバディで開発するために

今後もAIと良好な関係を保ちながら開発を進めていくために、以下の点を意識しています。

  • 変更履歴を毎日記録する
  • AIからの提案は、自分が納得するまで繰り返し読み込む
  • 今後も人間側が学習し続ける
  • 「AIはアシスタントであって外注先ではない」ことを意識し続ける

最近は「AIに丸投げしてアプリを完成させた」といった話題が注目を集めていますが、私としてはそれには慎重であるべきだと考えています。
AIの提案を開発者自身が正しく評価できないと、大きな落とし穴にはまるリスクが高まるためです。
したがって、AIはあくまで「頼れる相棒」であり、「責任を取ってくれる外注先」ではないという姿勢を忘れないようにしています。


今後やりたいこと

現在もリポジトリの更新を継続中です。「VtuberCamera」と名付けたこのプロジェクトでは、アバターモデルの導入を視野に入れながら、以下のような機能を追加していきたいと考えています。

  • 顔認識機能の追加
  • Hiltの導入
  • アバターモデルの導入

もちろん、やりたいことリストは今後もアップデートされていく予定です。より楽しく、実用的なアプリに育てていければと思っています。

Discussion