👏

Claude4でAndroidアプリ開発、やってみた!3つのアプローチで開発記

に公開

Claude4でAndroidアプリ開発、やってみた!3つのアプローチで開発記

最近、Claudeを使い倒してAndroidアプリをいくつか作ってみました。
それぞれ違うやり方で試したので、その結果をまとめました。

正直、AI、特にClaudeだけでAndroidアプリをゴリゴリ作るのは
まだ「うーん…」って感じだけど、興味ある人はぜひ参考にしてみてください。
(この記事書いてる時のバージョンは今と違います)

0. Claudeって何者?

ClaudeはAnthropic社が開発したAIコーディングと AI エージェントです。
今はClaude Sonnet4 Opus4が最新モデルとして使えるんだ。

今回使ったツール

  • ブラウザ版Claude4: いつも使ってるブラウザからチャット形式で使える。
  • Claude Code: ローカルのコマンドラインで動くエージェント型開発ツール。
  • Claude Code Action: GitHub上で動いて、issueとかプルリクエストで開発を進められるスグレモノ。

今回はこの3つのやり方で、それぞれ違うAndroidアプリ開発に挑戦してみました。

パート1:ブラウザ版Claudeで「直近の駅どこアプリ」

1.1 開発のきっかけ

みんな、仕事帰りとかに電車で運良く座れて爆睡しちゃって、
ハッと目覚めたら目の前が満員電車でサラリーマンの壁。
しかも寝ぼけてて「あれ?今どこ?何線?」ってなった経験、あるんです。

そんな時、「今、何線の何駅と何駅の間にいるよ!」って
スマホのホーム画面に表示してくれるアプリがあったらってずーっと夢見てました。

で、ちょうどClaude4が来たから、「これ、使えるんじゃね?」って思って、
試しに作ってもらうことにしました。

1.2 要件定義はザックリと!

まずは、ChatGPT4oに「こんなアプリ作りたいんだけど、Claudeに投げかけるプロンプト作って!」ってお願いして、
ブラウザ版Claude4にコードを作ってもらうためのプロンプトを生成。

要件はこんな感じ。

  • 位置情報を使う
  • 東京都内の駅情報から最寄り駅を出す
  • Androidウィジェットに表示するアプリにする
  • 何線で何駅と何駅の間か表示する
    これだけ。

1.3 コード生成、まさかの「1ファイル」

ブラウザ版Claude4にChatGPTからのプロンプトを投げたら、
Androidアプリのコードはちゃんと作ってくれたんだけど、
まさかの「1ファイル」に全部ぶち込んでるっていう

今でこそファイルごとに分けてくれるけど、
当時は複数ファイルがテキストでズラーッと並んでる状態でした。
でも、そのコードと足りないファイル、それに処理の説明はしてくれたから、そこはさすが

で、その連結テキストをエージェントAIのManusに投げたら、
ファイル分割してくれて、gradleとかアイコンとかも全部揃えて、
Androidプロジェクトとしてビルドできる状態のzipにまとめてくれました。Manusこういうの強い。

1.4 ビルドから起動まで

ManusAIが用意してくれたプロジェクトを開いてみたら、
確かにAndroidプロジェクトとしてビルドできる状態にはなってた。
ただ、ウィジェットが動かなかったり、権限が足りなかったり、って細かい修正は必要だったけど、
この環境が一番ビルドまで早かった

1.5 アプリ起動と「まさかの駅サンプルデータ」

アプリは意外とあっさり動いたんだ。
でも、最寄り駅がめちゃくちゃ遠くて。
「バグってんのか!?」って思ったら、
まさかの内部の駅データが山手線の東半分しかなかったっていう。

これ、「主要な機能は作ったから、あとは自分でデータ追加してね!」みたいな、
俺みたいなめんどくさがり職人エンジニアの仕事っぷりを感じる。

その後、駅データと路線データの構成をClaudeに食わせて、
東京都内の駅データを「路線を指定して」集めさせて、手作業で追加したんだ。
Claudeに全部吐き出させようとしたら、
「駅データ追加用のメソッド用意しといたぜ!使いな!」って言われたけど、
そんな機能はない

このアプリ、駅データをJSONで取ったり、利用地域の駅データを増やしたり、
ウィジェットのデザインを直したりすれば、
リリースできそうなクオリティだったので
余裕ができたら、そのうちClaudeさんにそこまでやってもらおうかなって思ってる。

1.6 ブラウザ版Claude評価

ChatGPTとかと同じUIだから、手軽に使える。
ChatGPTよりも専門的なプログラム設計とか技術の話とか、結構相談してる。。
とにかく、気軽に触れるのが良い

パート2: Claude Codeで「音声変換アプリ」

2.1 開発きっかけ

Claude Codeをセットアップして動くのは確認したんだけど、
「さて、何作ろっかな〜」って悩んでて。
そんな時、ふと「人間の声って色んな周波数が合わさって…」みたいな話を見かけて、
「これ、作れんのかな?」って思い立って、無茶振りしました

2.2 要件定義、まさかの「指示ミス」?

ChatGPTo3に「こんなアプリ作りたいんだけど、プロンプト出して!」ってお願いしたんだけど、
今回はちょっと指示をミスった。

2.3 コード生成から動かすまで、地獄のループ!

これがしんどかった

Claude Codeって、ローカルでガンガン動いて、ファイル作ったり、
コード書いたり、ライブラリ追加したり、フォルダ作ったり、
権限追加したり、パス通したりするんだよね。
その度に「これ、やってもいいですか? 1.yes 2.この行為はずっとyes 3.no」って
選択を出来るようになってる。安全設計、大事。

しかも、指示に割と言葉通りに動いてくれる。
Android用のコードはファイルも分けて用意してくれたし、
マニフェストファイルもあったよ。でも、gradleプロジェクトがない

だから「gradleプロジェクトも作って!」って頼んだら、
作ってくれるんだけど、今度は「ビルドできないからJava入れろ!」って言われるし。
「Android Studio入ってるんだけどな〜」って思ったら、パスが通ってなかったっていう。

もうここからが大変で、

「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする
「これで動きます」→ 動かないし、出てくるエラーをClaude Codeにコピペする

…って、この辺で嫌になって、自分である程度動く状態にしたら、
Claude Codeも嫌になったのか、
「これでgradleビルドできますよ」って言ってたのが、「私がgradleビルドしますね」って対応が変わった

そっからは、バージョン上げたり下げたりまた上げたり、
新しいJava入れたりパス通したり、Android Studioが古いからアップデートしろって言われたり。

そしてようやくアプリは起動できるようになったんだけど、今度はマイク入力が取れてない。
今、まさに対応中。(俺が最新の指示出して、まだ出力結果確認してないだけ)

2.4 Claude Code、ぶっちゃけどうだった?

凄いよ、これ!PMがいるプログラマーチームを雇ったみたいな感じ。
今回は仮想環境使うようなものじゃなかったから用意はしなかったけど。
しかも、得意分野じゃないAndroidアプリを作らせるっていう、結構ハードルの高いことやらせたし。
得意分野のWebサービス系も色々試してるんだけど、凄い。
既存の組み合わせはもうこれでいいんじゃないかな。

パート3: Claude Code Action

3.0 Claude Code Action、勘違い

Claude Code Actionって、GitHubのissueをトリガーにして、
ローカルのClaude Codeが動くと思ってた。
「あれー、動かないなー」とか「リポジトリ、ローカルにクローンしないの?」とか、勘違いしてた

GitHub Action上で動いてるのね

3.1 開発経緯

Claude Code Actionは最初から使うって決めてて、
GitHubに先に雛形のAndroidプロジェクトを上げてあって。
その上で、Claude Codeと「こんな機能作りたいんだけど〜」って
相談しながらメインロジックを作って、そこからの実装とか修正はClaude Code Actionを使って指示。

3.2 Claude Codeで実装、Actionでサクッと修正!

まずはメイン機能の実装をお願い。
でも、勘違いしてて、Claude Codeに「issue確認して実装して」って頼んでたんだよね。
この辺りで、「あれ?なんか動きが違うぞ?」って勘違いに気づきました。

機能実装後にアプリが権限エラーで立ち上がらなかったから、
ここからActionでの修正になったんだけど、これが楽。
動かなかった状態をissueに追加して「@claude」ってメンション付けるだけ。

そしたら、エラーの原因を推測してタスク立てて、
それぞれ全部確認してくれて、しかも自分でブランチ切ってプッシュまで終わったらメールが来る。
こっちは、解決プッシュコメントからプルリク作って、コンフリクト確認してマージするだけ。
マージしたらプルして、ローカルでAndroidアプリからdebug回すだけ。

超楽

3.3 Claude Code Action、評価

超楽。GitHub上で全部完結するから、どこからでも指示できるし。
GitHubでソース管理されてるところにAIで作業フックできるのが、
今までの開発の流れを全く邪魔してなくて、めちゃくちゃ便利。
あと、readmeとか.claudeファイルもClaudeに書いてもらった。
これも超楽。

総評:Claudeと開発、アリよりのアリ

Claude CodeとClaude Code Action、超楽!

既存の処理とか、お決まりのtry-catchとか例外エラー処理とかは、もうこれでいいんじゃないかなって思う。
ただ、シンプルな形で完結するものが向いてるかも。

今回はAndroidアプリっていう、Javaとかgradleとか連携が必要なものを作らせたから、
正直、難儀した部分もあったけど、逆に苦手なものでもここまでできるんだっていうのが分かったのは大収穫。

やっぱりWebサービスとか作らせるのが一番得意だと思う。
あと、指示は的確に出すのが大事。

なんか、Claudeは「槍で同じところを掘り進めるのが得意な職人」ってイメージ。

Manusは「ダイナマイトで一気に発破するチーム」みたいな

Discussion