第16回|Compose⑥:AIでUIを生成し修正する流れ[AI]


⚙️ 準備と環境設定

Jetpack Composeを使ったAndroidアプリ開発では、UI設計や画面構成の調整が重要です。第16回では、Gemini AIを活用して画面構成を生成し、必要に応じて修正・改善する手順を具体的に解説します。Kotlin/Composeをメインに、初心者でも理解できるよう実践的に解説します。

Android Studio Otter
Android Studio Otter

1. 開発環境の確認

  • Android Studio Otter 2025.2.1
  • Kotlin 1.9以上、Jetpack Compose 2.0以上
  • Material3ライブラリ導入済み
  • Gemini AIプラグイン有効化済み

Composeプロジェクト作成後、UI生成用のGemini AI支援を使う準備をします。まずbuild.gradleで必要なCompose Material3依存関係を確認してください。

dependencies {
    implementation "androidx.compose.material3:material3:1.2.0"
}

🤖 Geminiによる支援の使い方

Gemini AIを利用すると、自然言語から画面構成やレイアウトを自動生成できます。たとえば、「ログイン画面の入力フォームとボタンを持つCompose UIを生成」と指示すると、Composeコードが自動生成されます。

// Geminiへのプロンプト例
"Jetpack Composeでログイン画面を作成。メールアドレスとパスワード入力、ログインボタン、Material3デザイン"

生成後のコードはAI提案に従いつつ、開発者がカスタマイズ可能です。GeminiはUI構成だけでなく、カラー、フォント、間隔なども提案してくれるため、デザインの統一が容易になります。


💡 Kotlinでの実装例

2. AI生成UIのサンプルコード

@Composable
fun LoginScreen(
    onLoginClick: (String, String) -> Unit
) {
    var email by remember { mutableStateOf("") }
    var password by remember { mutableStateOf("") }

    Scaffold(
        topBar = {
            TopAppBar(title = { Text("ログイン") })
        },
        content = { padding ->
            Column(
                modifier = Modifier
                    .fillMaxSize()
                    .padding(padding)
                    .padding(16.dp),
                verticalArrangement = Arrangement.Center
            ) {
                TextField(
                    value = email,
                    onValueChange = { email = it },
                    label = { Text("メールアドレス") },
                    modifier = Modifier.fillMaxWidth()
                )
                Spacer(modifier = Modifier.height(8.dp))
                TextField(
                    value = password,
                    onValueChange = { password = it },
                    label = { Text("パスワード") },
                    visualTransformation = PasswordVisualTransformation(),
                    modifier = Modifier.fillMaxWidth()
                )
                Spacer(modifier = Modifier.height(16.dp))
                Button(
                    onClick = { onLoginClick(email, password) },
                    modifier = Modifier.fillMaxWidth()
                ) {
                    Text("ログイン")
                }
            }
        }
    )
}

このコードでは、remembermutableStateOfを活用して入力値を管理し、Columnで縦方向に配置しています。AI生成コードをベースに、間隔やフォントサイズを微調整するだけで完成度の高いUIが構築可能です。

3. AI支援による修正例

Geminiに「ログインボタンを中央揃えに変更し、カラーをテーマのアクセント色に」と指示すると、Buttonのmodifiercolors属性の変更案を自動生成します。

Button(
    onClick = { onLoginClick(email, password) },
    modifier = Modifier
        .fillMaxWidth()
        .align(Alignment.CenterHorizontally),
    colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.primary)
) {
    Text("ログイン", color = MaterialTheme.colorScheme.onPrimary)
}

このように、Gemini AIを使えば、UIの微調整も効率的に行えます。特に複数画面やテーマ対応のアプリでは、修正提案機能が大幅な時間短縮になります。


🧩 FirebaseまたはCloudとの連携

AI生成UIにFirebaseを組み合わせると、ユーザー認証やデータ保存も簡単に実装できます。例としてFirebase Authenticationでログイン処理を追加する場合:

val auth = FirebaseAuth.getInstance()

fun login(email: String, password: String, onSuccess: () -> Unit, onError: (String) -> Unit) {
    auth.signInWithEmailAndPassword(email, password)
        .addOnCompleteListener { task ->
            if (task.isSuccessful) {
                onSuccess()
            } else {
                onError(task.exception?.message ?: "ログイン失敗")
            }
        }
}

この処理をAI生成のUIに組み込むことで、Geminiが提案するコードに認証ロジックを追加し、ボタン押下時に安全にログインを処理できます。


📘 まとめ

第16回では、Jetpack ComposeでのAI支援UI生成と修正の流れを解説しました。Gemini AIを活用すると、画面構成の雛形生成から細かな修正まで効率的に行えます。KotlinとComposeを中心に、状態管理やレイアウト調整、Firebase連携も組み合わせることで、初心者でも実践的なアプリ開発が可能です。


🤖Android開発(Otter)[AI]Android Studio Otter × Gemini × Firebase × Google Cloud 開発支援ブログ一覧 Android Studio Otter 🩵【第1部】導入編:Android Studio Otterの準備と基本操作(1〜5回) ・ 第1回|A…
続きを読む
 zesys.net
🤖Android開発(Otter)[AI]


「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」

広告

迷子探偵やもやも [AI]

探偵はいつも迷子ですw

シェアする