AI活用 Androidアプリ開発 個人開発

Claude CodeでAndroidアプリ開発用プロンプトを作成してみた|AIに正しく指示するための工夫

はじめに

最近、Androidアプリの個人開発でAIを使う機会が増えてきました。

前回は、ChatGPTを使ってAndroidアプリの仕様書を作成する方法を試しました。
仕様書を作ることで、アプリの目的、画面構成、必要な機能、保存するデータなどを整理できます。

ただ、仕様書を作っただけではアプリは完成しません。
次に必要になるのは、AIエージェントやコード生成ツールに対して、どのように実装を依頼するかです。

今回は、Claude CodeにAndroidアプリ開発を依頼するためのプロンプトを作成してみました。

この記事では、単なるClaude Codeの紹介ではなく、実際に開発を依頼するときにどのような指示を出せばよいか、曖昧な指示で困った点、改善したプロンプト、個人開発で使うときの注意点をまとめます。

Claude Codeに期待したこと

Androidアプリを作るとき、AIに期待したい作業はいくつかあります。

たとえば、以下のような作業です。

  • プロジェクト構成の提案
  • 画面構成の作成
  • Kotlinコードの作成
  • Jetpack ComposeのUI実装
  • データ保存処理の作成
  • エラー修正
  • リファクタリング
  • READMEや使い方説明の作成

特に個人開発では、設計から実装まで一人で進めることが多いため、AIに作業の一部を任せられるとかなり助かります。

しかし、実際に使ってみると、AIにただ「アプリを作って」と依頼するだけでは、思った通りの成果物になりません。

AIにコードを書いてもらう場合は、何を作るかだけでなく、どの範囲まで作るかどの技術を使うかどの順番で作るかを明確に伝える必要があります。

最初に失敗した指示

最初は、以下のような大ざっぱな指示を考えていました。

Androidアプリを作成してください。
KotlinとJetpack Composeを使ってください。

この指示でも、簡単なサンプルコードは出てくるかもしれません。

しかし、実際の開発用プロンプトとしてはかなり不足しています。

なぜなら、以下の情報が入っていないからです。

  • アプリの目的
  • 必要な画面
  • 実装する機能
  • データ保存方法
  • 使用するライブラリ
  • 対応するAndroidバージョン
  • 最初に作る範囲
  • 作らなくてよい機能
  • 既存コードがあるかどうか
  • どのファイルを変更してよいか

この状態でAIに依頼すると、必要以上に大きな構成になったり、逆に簡単すぎるサンプルだけで終わったりする可能性があります。

曖昧な指示で起きやすい問題

Claude Codeに限らず、AIに開発を依頼するときは、指示が曖昧だと次のような問題が起きやすいです。

1. 不要な機能まで作ろうとする

たとえば、シンプルな個人用アプリを作りたいだけなのに、ログイン機能、クラウド同期、ユーザー管理などを含めた大きな構成を提案されることがあります。

これらの機能は便利ですが、最初のバージョンでは不要な場合も多いです。

個人開発では、まず最小限の機能で動くものを作ることが重要です。

2. ファイル構成が複雑になりすぎる

AIは、きれいなアーキテクチャを提案してくれることがあります。

たとえば、

  • data
  • domain
  • ui
  • repository
  • usecase
  • viewmodel

のように層を分けた構成です。

中規模以上のアプリでは有効ですが、小さなアプリでは最初から複雑にしすぎると、理解や修正が大変になります。

3. 既存コードとの整合性が取れない

すでにAndroid Studioでプロジェクトを作成している場合、AIが生成したコードが既存のGradle設定やパッケージ名と合わないことがあります。

この場合、コピペしてもそのまま動かず、ビルドエラーになることがあります。

4. 実装順が分かりにくい

完成形のコードを一気に出されても、どこから確認すればよいか分かりにくいことがあります。

個人開発では、

  1. まず画面を表示する
  2. ボタン操作を作る
  3. データを保存する
  4. 一覧表示する
  5. 編集・削除を追加する

のように、段階的に実装した方が確認しやすいです。

プロンプトに入れるべき情報

実際に使いやすいプロンプトにするため、以下の項目を入れることにしました。

1. アプリの目的

まず、何のためのアプリなのかを明確にします。

このアプリは、個人が日常的に使えるシンプルなタイマー管理アプリです。
複数のタイマーを登録し、一覧から選んで実行できるようにします。

目的が明確になると、AIが不要な機能を提案しにくくなります。

2. 開発環境

次に、使用する技術を指定します。

開発環境:
- Kotlin
- Jetpack Compose
- Android Studio
- Roomを使ったローカル保存
- 最初はクラウド同期なし

技術を指定しておくと、AIが別の方式で実装することを防ぎやすくなります。

3. 作る画面

画面一覧も最初に伝えます。

作成する画面:
1. ホーム画面
2. タイマー編集画面
3. タイマー実行画面
4. 履歴画面
5. 設定画面

画面を明確にしておくと、UI実装の抜け漏れが減ります。

4. MVPで作る範囲

最初に全部作るのではなく、MVPを指定します。

最初に実装するMVP:
- タイマー一覧表示
- タイマーの新規作成
- タイマーの編集
- タイマーの削除
- タイマー実行
- ローカル保存

これにより、最初の実装範囲を絞ることができます。

5. 今回は作らない機能

AIに依頼するときは、「作ること」だけでなく「作らないこと」も重要です。

今回は実装しない機能:
- ログイン機能
- クラウド同期
- 課金機能
- SNS共有
- 複雑な通知機能

作らない機能を明記しておくと、開発範囲が広がりすぎるのを防げます。

6. 出力してほしい内容

最後に、どのような形で出力してほしいかを指定します。

出力してほしい内容:
1. 実装方針
2. ファイル構成
3. 実装順
4. 必要なKotlinファイル
5. 各ファイルの役割
6. 注意点
7. ビルド時に確認するポイント

ここまで指定すると、単なるコード生成ではなく、開発を進めるための手順として使いやすくなります。

実際に作成したClaude Code用プロンプト

以下は、実際に使いやすい形に整理したプロンプトです。

あなたはAndroidアプリ開発に詳しいエンジニアです。
以下の仕様をもとに、Kotlin + Jetpack ComposeでAndroidアプリを実装してください。

# アプリ概要

個人が日常的に使えるシンプルなタイマー管理アプリを作成します。
複数のタイマーを登録し、一覧から選んで実行できるようにします。

# 想定ユーザー

- 勉強や作業の時間を管理したい人
- 運動や休憩時間を管理したい人
- 複数のタイマーを使い分けたい人

# 開発条件

- Kotlinを使用
- Jetpack Composeを使用
- Android Studioでビルドできること
- ローカル保存にはRoomを使用
- 最初はクラウド同期なし
- 最初はログイン機能なし
- 個人開発向けに、構成を複雑にしすぎない

# 作成する画面

1. ホーム画面
- 登録済みタイマー一覧を表示
- 新規作成ボタンを表示
- 各タイマーに開始ボタンを表示

2. タイマー編集画面
- タイマー名を入力
- 分・秒を入力
- 音声案内の有無を設定
- バイブレーションの有無を設定
- 保存ボタンを表示

3. タイマー実行画面
- 残り時間を大きく表示
- 開始、一時停止、停止ボタンを表示
- 完了時に音またはバイブで知らせる

4. 履歴画面
- 実行したタイマーの履歴を表示
- 実行日時を表示

5. 設定画面
- 音声設定
- バイブレーション設定
- テーマ設定
- プライバシーポリシー表示

# MVPで実装する機能

まずは以下を優先して実装してください。

- タイマー一覧表示
- タイマー新規作成
- タイマー編集
- タイマー削除
- タイマー実行
- Roomによるローカル保存

# 今回は実装しない機能

以下は今回の実装対象外です。

- ログイン機能
- クラウド同期
- 課金機能
- SNS共有
- 複雑な通知機能

# 出力してほしい内容

最初に、以下を整理してください。

1. 実装方針
2. 推奨するファイル構成
3. 実装順
4. 必要なデータクラス
5. 必要な画面Composable
6. ViewModelの役割
7. RoomのEntity / DAO / Database構成
8. 注意点

その後、実装に必要なコードをファイルごとに提示してください。

# 注意点

- 初心者でも理解しやすい構成にしてください
- 1ファイルに詰め込みすぎないでください
- ただし、過度に複雑なアーキテクチャにはしないでください
- 各ファイルの役割が分かるように説明を付けてください
- ビルドエラーが起きやすいGradle設定やimportにも注意してください

このプロンプトで改善できたこと

このように詳しく指示すると、出力がかなり安定しました。

特に良かったのは、以下の点です。

開発範囲が明確になった

「今回は作らない機能」を明記したことで、不要なログイン機能やクラウド同期機能が出にくくなりました。

AIは便利な機能を追加しようとすることがありますが、個人開発では機能を絞ることが大切です。

最初は小さく作って、動く状態にする方が完成に近づきやすいと感じました。

実装順を整理できた

いきなり全コードを作成するのではなく、実装順を整理してもらうことで、確認しながら進めやすくなりました。

たとえば、以下のような順番です。

  1. プロジェクト設定
  2. データクラス作成
  3. Room設定
  4. ホーム画面作成
  5. 編集画面作成
  6. 保存処理作成
  7. 実行画面作成
  8. 履歴画面作成
  9. 設定画面作成

このように順番があると、途中でエラーが出た場合も原因を追いやすくなります。

画面とデータの関係が分かりやすくなった

画面一覧だけでなく、各画面に表示する項目を指定したことで、必要なデータ項目も整理しやすくなりました。

たとえば、タイマー編集画面に「音声案内の有無」「バイブレーションの有無」を入れるなら、保存するデータにもそれらの項目が必要になります。

画面設計とデータ設計をセットで考えることが重要だと感じました。

Claude Codeに依頼するときの注意点

便利に使える一方で、注意点もあります。

1. 一度に全部作らせすぎない

アプリ全体を一度に作らせると、コード量が多くなり、確認が大変になります。

特にAndroidアプリの場合、Gradle設定、依存関係、パッケージ名、import、権限設定など、細かい部分でエラーが出ることがあります。

そのため、最初は以下のように小さく依頼する方が安全です。

まずはホーム画面とタイマー一覧表示だけを実装してください。
Room保存は後で追加します。

または、

まずはRoomのEntity、DAO、Databaseだけを作成してください。
画面実装は次のステップで行います。

このように分けると、確認しながら進められます。

2. 既存プロジェクトの状態を伝える

すでにAndroid Studioでプロジェクトを作っている場合は、既存の状態を伝えることが重要です。

たとえば、以下のような情報です。

  • パッケージ名
  • minSdk
  • targetSdk
  • Composeの有無
  • 使用しているライブラリ
  • 現在のフォルダ構成
  • すでにあるファイル
  • 発生しているエラー

これらを伝えないと、AIが現在のプロジェクトに合わないコードを出すことがあります。

3. エラーが出たら全文を渡す

ビルドエラーが出た場合は、エラーの一部だけではなく、できるだけ全文を渡した方がよいです。

特にAndroid開発では、最初に表示されるエラーではなく、少し下の行に本当の原因が書かれていることがあります。

エラーを渡すときは、以下のように依頼すると確認しやすいです。

以下のビルドエラーが出ています。
原因を特定し、修正すべきファイルと修正内容を教えてください。
可能であれば、修正後のコードも提示してください。

4. 生成されたコードを必ず確認する

AIが生成したコードは便利ですが、必ず自分で確認する必要があります。

特に以下の点は確認した方がよいです。

  • 不要な権限が追加されていないか
  • 動かないimportがないか
  • 使っていないライブラリが追加されていないか
  • データ保存処理が想定通りか
  • 画面遷移が複雑すぎないか
  • 例外処理が不足していないか
  • Google Play公開時に問題になりそうな処理がないか

AIに任せる部分と、自分で判断する部分を分けることが大切です。

実際に使って感じたメリット

Claude Code用のプロンプトを整理してみて、AIに開発を依頼するときは、プロンプト自体が設計書の役割を持つと感じました。

曖昧な指示では、AIの判断に任せる部分が多くなります。
その結果、想定より複雑な構成になったり、不要な機能が入ったりします。

一方で、事前に仕様書を作り、画面、機能、データ、実装範囲を整理してから依頼すると、出力内容がかなり安定します。

特に個人開発では、以下のような使い方が向いていると感じました。

  • 最初にChatGPTで仕様を整理する
  • その仕様をもとにClaude Code用プロンプトを作る
  • 実装範囲をMVPに絞る
  • 小さい単位でコード生成を依頼する
  • エラーが出たらログを渡して修正する

この流れにすると、AIを使った開発でも進め方がかなり整理されます。

ChatGPTとClaude Codeを組み合わせる使い方

今回感じたのは、ChatGPTとClaude Codeは役割を分けると使いやすいということです。

私の場合は、次のように分けると進めやすいと感じました。

役割使い方
ChatGPT仕様整理、画面構成、プロンプト作成
Claude Codeコード作成、ファイル修正、実装支援
自分取捨選択、動作確認、最終判断

ChatGPTで仕様や指示を整理し、その内容をClaude Codeに渡すと、いきなりコード生成を依頼するよりも安定しやすいです。

特に、Androidアプリのように画面、データ、権限、ストア公開準備が関係する開発では、最初の指示がかなり重要になります。

まとめ

今回は、Claude CodeでAndroidアプリ開発を進めるためのプロンプトを作成してみました。

実際に考えてみると、AIに開発を依頼するときは、単に「アプリを作って」と伝えるだけでは不十分です。

重要なのは、以下の情報を具体的に伝えることです。

  • アプリの目的
  • 想定ユーザー
  • 開発環境
  • 作成する画面
  • MVPで実装する機能
  • 今回は作らない機能
  • データ保存方法
  • 出力してほしい内容
  • 実装時の注意点

これらを整理しておくことで、AIの出力が開発に使いやすい形になります。

特に個人開発では、最初から多機能なアプリを作ろうとせず、MVPを決めて小さく作ることが重要です。

Claude CodeのようなAIエージェントを使う場合も、最初の指示次第で結果が大きく変わります。

今後Androidアプリ開発でAIを使う場合は、いきなりコードを書かせるのではなく、まずは仕様書と開発プロンプトを整理してから依頼すると、作業がかなり進めやすくなると感じました。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です