第11回|Jetpack Compose入門①:レイアウトの基本構成[AI]
⚙️ 準備と環境設定
Jetpack ComposeはKotlinでUIを宣言的に構築する最新のAndroid UIフレームワークです。本記事では、Composeの基本レイアウトであるScaffold、Column、Rowの使い方を学びます。AI支援(Gemini)を使うことで、UIの骨組みやコメントを効率よく生成できます。
![第11回|Jetpack Compose入門①:レイアウトの基本構成[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. 開発環境の確認
- 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の
ArrangementやAlignmentの提案 - 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の基本レイアウトであるScaffold、Column、Rowの使い方を学びました。Geminiを活用することで、UIの骨組みやModifierの補完、コメント生成が効率化されます。AI生成コードはレビューと手動調整を行い、デザイン意図と安全性を確認することが重要です。これにより、Composeのレイアウト設計をスムーズに進められます。
「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」