Gemini in Android Studio はコーディング コラボレーターとして機能し、コードの生成、複雑なトピックの要約、特定のリソースの検索などを行うことで、開発ワークフローを加速させます。効果的なコミュニケーションは、Gemini の可能性を最大限に引き出すための鍵となります。
このガイドでは、開発環境をセットアップし、有用で信頼性の高いレスポンスを生成するプロンプトを作成するための戦略について説明します。複数の戦略については、さまざまなユースケースのプロンプト例を示しました。プロンプトの例については、プロンプト ギャラリーをご覧ください。
エージェント モードを使用する
Gemini in Android Studio のエージェント モードでは、Gemini とチャットするだけでは対応しきれなかった、複雑な開発タスクを処理できます。エージェントに大まかな目標を設定すると、エージェントが問題を分解し、解決するための計画を作成します。エージェントは ツールを呼び出し、複数のファイルを編集し、エラーを修正します。エージェント モードを使用すると、複雑なタスクをより効率的に処理し、開発プロセス全体を高速化できます。
ポイントを絞る
Gemini in Android Studio は、明確で具体的な指示があると最も効果を発揮します。使用したいライブラリ、API、アプローチがある場合は、質問に含めるか、プロジェクトのルート AGENTS.md ファイルに含めて、インタラクション全体で保持します。バグレポートを送信するようなものです。提供する情報が多いほど、問題をより迅速かつ効果的に解決できます。
新機能の実装:
すべきこと
すべきでないこと
コードの生成:
すべきこと
Coil ライブラリを使用して、指定された URL 文字列から画像をダウンロードする Kotlin の suspend 関数を作成します。
関数の名前は fetchImageAsBitmap
にする必要があります。Context
と String
URL を引数として受け取り、null 可能な Bitmap
を返す必要があります。ネットワーク エラーまたはデコード エラーが発生した場合は、例外をキャッチしてログに記録し、null
を返す必要があります。
すべきでないこと
コンセプトの説明:
すべきこと
音楽プレーヤー アプリを開発しており、アプリがバックグラウンドにあるときに再生を継続する必要があります。
ユーザーがデバイスで他の操作をしている間もアプリを動作させ続けるには、どのような方法がありますか?各アプローチの API レベルの要件とバッテリー寿命への影響は何ですか?
すべきでないこと
回答の構造を説明する
デフォルトでは、Gemini は会話形式の段落ベースの形式で回答を提供します。これは説明には役立ちますが、回答の構成方法を指定すると、より効果的で、すぐに使用できる結果が得られます。出力形式を指定すると、モデルは情報を明確で予測可能な方法で整理するため、自分で再フォーマットする手間が省けます。
Gemini で生成されたコードをアプリに挿入し、すぐに使用できるように特定の形式でコードが必要な場合は、コードの生成とフォーマットについて Gemini に明確な指示を与えます。
回答の構成:
すべきこと
ユーザー プロファイルの Room エンティティを作成します。これには、id
、userName
、email
、memberSince
の各フィールドが含まれている必要があります。id
フィールドは自動生成されます。memberSince
フィールドはタイムスタンプを表す必要があります。
すべきでないこと
より自由回答形式の質問をする場合は、x 個の選択肢で質問します。
回答の制限:
すべきこと
すべきでないこと
複雑なリクエストを小さなタスクに分割する
複雑な複数ステップのリクエストの場合は、エージェント モードを試してください。ただし、エージェントのアプローチが期待どおりでない場合は、すべてを一度に要求するのではなく、一連の小さなプロンプトを順番に Gemini に送信するとよいでしょう。この方法では、より詳細な制御が可能になり、次のステップに進む前に各ステップを検証できます。
連続したプロンプトを適用する:
すべきこと
プロンプト 1: データモデル
まず、User
という名前の Kotlin データクラスを作成します。id
(Int)、name
(String)、email
(String)の 3 つのプロパティが必要です。
プロンプト 2: ネットワーク レイヤ
次に、ApiService
という名前の Retrofit API インターフェースを作成します。List<User>
を返す getUsers()
という 1 つの suspend fun
が必要です。
プロンプト 3: 状態管理
次に、ApiService
を依存関係として受け取る UsersViewModel
を記述します。UsersViewModel
は、Loading, Success(users: List
状態と Error(message: String)
状態を表すことができる、シールされた UiState
クラスの StateFlow
を公開する必要があります。ViewModel
に関数を作成して、ユーザーをフェッチし、状態を更新します。新しい機能の単体テストを作成する
プロンプト 4: UI レイヤ
最後に、UiState
をパラメータとして受け取る UserListScreen
という名前の Jetpack Compose 関数を記述します。when
ステートメントを使用して、読み込み状態の CircularProgressIndicator
、成功状態のユーザー名の LazyColumn
、エラー状態のエラー メッセージを含む Text
要素を表示します。新しい機能を検証するテストを追加します。
すべきでないこと
ViewModel
、データロジックを処理するリポジトリ、User
データクラスがあり、読み込み状態とエラー状態を表示する必要があります。コンテキストを管理する
Gemini in Android Studio を使用するうえで重要なのは、適切なコンテキストを提供することです。関連性の高いコード スニペット、ファイルの内容、プロジェクト構造の情報を提供すると、最も役立つ回答が得られます。適切なバランスを見つけるには、反復処理が必要になる場合があります。情報が多すぎると Gemini が誤った方向に進む可能性があり、情報が少なすぎると Gemini がサポートするのに十分なコンテキストを提供できません。利用可能な機能を使用して、Gemini に必要なコンテキストへのアクセス権を付与します。
- 画像を添付して、想定している UI や理解しようとしているアプリのアーキテクチャを視覚的に示します。
- ファイルを添付して、コードベースの関連部分をハイライト表示します。
.aiexclude
ファイルを使用して、コードベースの特定の部分を Gemini が無視するようにします。- AGENTS.md ファイルを使用して、プロジェクト固有の手順を指定し、チーム全体で共有します。AGENTS.md ファイルを使用する場合は、マークダウンの見出しと書式設定を使用して、手順を明確にします。
- エージェント モードを使用する場合は、MCP サーバーを構成して、外部環境で Gemini の知識と機能を拡張します。
説明を求める
Gemini in Android Studio の回答が理解できない場合は、説明を求めてください。これは、提案されたソリューションがユースケースに適していることを学習し、検証するのに最適な方法です。期待どおりの回答が得られなかった場合は、Gemini が間違っている可能性があります。説明を求めることで、Gemini が自己修正する機会が得られます。
指示を繰り返し編集する
同僚と作業する場合と同様に、Android Studio で Gemini と作業する場合も、タスクと期待される結果を明確にするために、やり取りが必要になることがあります。Gemini の最初の回答が不十分な場合は、フィードバックと改善案を返信します。提案に基づいてレスポンスが改善された場合は、プロンプト ライブラリのエントリを更新するか、AGENTS.md ファイルを更新して、その提案を元のプロンプトに組み込みます。