第8回|AIで設計を考える:自然言語→アプリ構成へ[AI]
⚙️ 準備と環境設定
Android Studio Otter 2025.2.1では、Gemini AIを利用して自然言語からアプリ設計を自動生成することが可能です。この章では、AI設計支援を活用するために必要な環境準備を解説します。
![第8回|AIで設計を考える:自然言語→アプリ構成へ[AI] 1 Android Studio Otter](https://zesys.net/blog/wp-content/uploads/2025/11/ChatGPT-Image-2025年11月10日-18_51_43-300x200.png)
1. プロジェクトの事前準備
AIによる設計支援を効率的に使うには、以下の準備が必要です:
- Kotlinをメイン言語に設定
- Jetpack Composeライブラリの最新バージョンを導入
- Gemini AIを有効化し、プロジェクトでAI補完・設計支援オプションをオンにする
- Gradleの同期とLintチェックを完了し、依存関係を整理
2. AIプロンプトの準備
AIに設計を生成させるには、自然言語で要件を明確に記述することが重要です。例:
「ログイン画面、ユーザー登録画面、ホーム画面、詳細画面を持つアプリをKotlin + Jetpack Composeで作りたい。
ホーム画面にはリスト表示と検索機能を実装。」
このようなプロンプトをGeminiに入力することで、AIは画面構成、ナビゲーション、基本レイアウトを提案します。
🤖 Geminiによる支援の使い方
3. 自動生成されるアプリ構成
Geminiは自然言語の要件を解析し、以下のようなComposeコードの骨格を提案します:
@Composable
fun LoginScreen(onLogin: () -> Unit) {
Column(modifier = Modifier.fillMaxSize().padding(16.dp)) {
Text("Login", style = MaterialTheme.typography.headlineMedium)
TextField(value = "", onValueChange = {}, label = { Text("Email") })
TextField(value = "", onValueChange = {}, label = { Text("Password") }, visualTransformation = PasswordVisualTransformation())
Button(onClick = onLogin) { Text("Sign In") }
}
}
Geminiは画面レイアウト、入力フォーム、ボタン配置までを自動で生成し、開発者はこのコードをベースにカスタマイズ可能です。
4. ナビゲーション構成の提案
AIは複数画面間の遷移も提案します。例:
@Composable
fun AppNavHost(navController: NavHostController) {
NavHost(navController, startDestination = "login") {
composable("login") { LoginScreen(onLogin = { navController.navigate("home") }) }
composable("home") { HomeScreen() }
composable("detail/{id}") { backStackEntry ->
val id = backStackEntry.arguments?.getString("id")
DetailScreen(id = id)
}
}
}
Geminiは画面間の遷移ロジックも自動生成するため、Navigation Composeの設定を手作業で書く必要が大幅に減ります。
💡 Kotlinでの実装例
5. ホーム画面のリスト表示
AI提案に基づき、ホーム画面のリスト表示をComposeで作成:
@Composable
fun HomeScreen() {
val items = listOf("Item 1", "Item 2", "Item 3")
LazyColumn {
items(items) { item ->
Text(text = item, modifier = Modifier.padding(8.dp), style = MaterialTheme.typography.bodyLarge)
}
}
}
Geminiは以下の改善提案を提示します:
- LazyColumnのitemsにキーを追加して効率化
- MaterialThemeのスタイルを統一
- Modifier.paddingの調整でUI整列
6. 検索機能のサンプル
@Composable
fun SearchBar(query: String, onQueryChange: (String) -> Unit) {
TextField(
value = query,
onValueChange = onQueryChange,
placeholder = { Text("Search") },
modifier = Modifier
.fillMaxWidth()
.padding(8.dp)
)
}
Geminiはリアルタイム補完として、TextFieldのstate管理や検索結果更新ロジックの提案も行います。
🧩 FirebaseまたはCloudとの連携
AI設計支援は、Firebase認証やFirestoreデータベースとの統合にも活用可能です。例として、ログイン画面でFirebase Authenticationを利用する場合:
val auth = Firebase.auth
Button(onClick = {
auth.signInWithEmailAndPassword(email, password)
.addOnCompleteListener { task ->
if (task.isSuccessful) {
// ログイン成功、ホーム画面へ
navController.navigate("home")
} else {
// エラー処理
Log.e("Login", "Authentication failed", task.exception)
}
}
}) {
Text("Sign In")
}
Geminiは、非同期処理やエラー処理の改善案も提案し、Kotlin Coroutineへの変換例も提示可能です。
📘 まとめ
第8回では、自然言語を用いてGemini AIにアプリ構成を生成させる手順を解説しました。AIは画面構成、ナビゲーション、入力フォームなどの骨格を生成し、Kotlin + Jetpack Composeで効率的にアプリ開発を進めることができます。FirebaseやCloud連携コードもAIが補完してくれるため、設計から実装までの工数を大幅に削減可能です。
「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」