第11回|Jetpack Compose入門①:レイアウトの基本構成[AI]


⚙️ 準備と環境設定

Jetpack ComposeはKotlinでUIを宣言的に構築する最新のAndroid UIフレームワークです。本記事では、Composeの基本レイアウトであるScaffoldColumnRowの使い方を学びます。AI支援(Gemini)を使うことで、UIの骨組みやコメントを効率よく生成できます。

Android Studio Otter
Android Studio Otter

1. 開発環境の確認

  • Android Studio Otter 2025.2.1
  • Kotlin 1.9以上、Jetpack Compose 2.0以上
  • Gemini AIプラグイン有効化済み
  • プロジェクトのGradle同期とCompose設定が完了していること

これらの準備により、AI生成コードが正しく補完され、実行時エラーを防ぎやすくなります。


🤖 Geminiによる支援の使い方

2. AI生成の利点

Geminiは自然言語の指示からComposeのUIコードを生成できます。例えば「ヘッダーとボディ、フッターを持つ基本的なレイアウトを作成」と入力すると、Scaffoldベースの骨組みを自動で生成可能です。

// Geminiに入力する例
"Jetpack Composeでヘッダー、コンテンツ、フッターを持つScaffoldを作成して"

生成後は手動で内容やPadding、カラーを調整することで、効率よくUIを完成させられます。


💡 Kotlinでの実装例

3. Scaffold, Column, Rowの基本構成

@Composable
fun BasicLayout() {
    Scaffold(
        topBar = { TopAppBar(title = { Text("基本レイアウト") }) },
        bottomBar = { BottomAppBar { Text("フッター") } }
    ) { paddingValues ->
        Column(
            modifier = Modifier
                .fillMaxSize()
                .padding(paddingValues)
                .padding(16.dp),
            verticalArrangement = Arrangement.Top
        ) {
            Row(
                modifier = Modifier.fillMaxWidth(),
                horizontalArrangement = Arrangement.SpaceBetween
            ) {
                Text("左側")
                Text("右側")
            }
            Spacer(modifier = Modifier.height(16.dp))
            Text("ボディコンテンツ")
        }
    }
}

この例では、Scaffoldをベースにトップバーとフッターを作成し、Columnで縦方向にコンテンツを配置、Rowで左右にテキストを配置しています。Geminiで生成したコードにコメントや追加のModifierを組み込むことで、実践的なUIを短時間で作成できます。

4. AI生成コードのレビュー例

Geminiが生成したコードは以下のような補完が可能です:

  • RowやColumnのArrangementAlignmentの提案
  • PaddingやMarginの推奨値生成
  • TopAppBarやBottomAppBarなど公式Composeコンポーネントの型チェック

AI生成コードを実際に手動確認することで、デザインの意図と動作の整合性を確保します。


🧩 FirebaseまたはCloudとの連携

5. データ連携例

UIの基本構造が完成したら、Firebase FirestoreやRealtime Databaseと連携して動的コンテンツを表示できます。例えば、ユーザー名をFirestoreから取得して表示する例:

@Composable
fun UserGreeting(userId: String) {
    val db = FirebaseFirestore.getInstance()
    var userName by remember { mutableStateOf("ゲスト") }

    LaunchedEffect(userId) {
        db.collection("users").document(userId).get()
            .addOnSuccessListener { document ->
                userName = document.getString("name") ?: "ゲスト"
            }
    }

    Text(text = "こんにちは、$userName さん!")
}

Geminiで生成されたComposeコードにFirestore呼び出しを追加し、非同期処理を組み込むことで、UIが動的に更新される実装例となります。


📘 まとめ

第11回では、Jetpack Composeの基本レイアウトであるScaffoldColumnRowの使い方を学びました。Geminiを活用することで、UIの骨組みやModifierの補完、コメント生成が効率化されます。AI生成コードはレビューと手動調整を行い、デザイン意図と安全性を確認することが重要です。これにより、Composeのレイアウト設計をスムーズに進められます。


🤖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

シェアする