第12回|Jetpack Compose入門②:ボタン・テキスト・入力[AI]


⚙️ 準備と環境設定

前回はJetpack Composeの基本レイアウト(Scaffold, Column, Row)を学びました。本記事では、Composeでの代表的なUIコンポーネントであるButtonTextTextFieldの使い方とKotlinコード例を解説します。Gemini AIを活用することで、コード生成やコメント作成の効率化が可能です。

Android Studio Otter
Android Studio Otter

1. 開発環境の確認

  • Android Studio Otter 2025.2.1
  • Kotlin 1.9以上、Jetpack Compose 2.0以上
  • Gemini AIプラグイン有効化済み
  • Composeプロジェクトがすでに作成済みであること

これらの準備により、AI生成コードや補完機能が正しく動作し、開発効率が向上します。


🤖 Geminiによる支援の使い方

2. AI生成でのボタン・入力UI作成

Geminiでは、自然言語でUIの指示を入力するだけで、Compose用のKotlinコードを生成できます。例えば:

// Geminiに入力する例
"Jetpack Composeで、テキスト表示とボタン、TextField入力を持つ画面を作成"

AIが生成したコードは、Buttonのクリック処理、TextFieldの状態管理なども補完されるため、初心者でも簡単に動作するUIを作成できます。


💡 Kotlinでの実装例

3. Button、Text、TextFieldの基本例

@Composable
fun ButtonTextFieldExample() {
    var inputText by remember { mutableStateOf("") }

    Column(
        modifier = Modifier
            .fillMaxSize()
            .padding(16.dp),
        verticalArrangement = Arrangement.Top
    ) {
        Text(text = "こんにちは、Compose入門!", style = MaterialTheme.typography.titleLarge)

        Spacer(modifier = Modifier.height(16.dp))

        TextField(
            value = inputText,
            onValueChange = { inputText = it },
            label = { Text("入力してください") },
            modifier = Modifier.fillMaxWidth()
        )

        Spacer(modifier = Modifier.height(16.dp))

        Button(
            onClick = { println("入力内容: $inputText") },
            modifier = Modifier.align(Alignment.CenterHorizontally)
        ) {
            Text("送信")
        }
    }
}

この例では、TextFieldでユーザーの入力を保持し、Buttonをクリックすると入力内容をログ出力します。remembermutableStateOfで状態管理を行う点がポイントです。

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

Geminiが生成したコードには以下の補完が含まれます:

  • TextFieldのonValueChangeやLabelの提案
  • ButtonのonClickイベント処理の雛形生成
  • ModifierやArrangementの推奨値
  • コメント生成によるコード理解補助

AI生成コードはレビューし、必要に応じてModifierやスタイルを調整することで、より実践的なUIを作成できます。


🧩 FirebaseまたはCloudとの連携

5. 入力データのFirestore保存例

ユーザーがTextFieldに入力したデータをFirebase Firestoreに保存する例です:

@Composable
fun FirestoreInputExample(userId: String) {
    val db = FirebaseFirestore.getInstance()
    var inputText by remember { mutableStateOf("") }

    Column(modifier = Modifier.padding(16.dp)) {
        TextField(
            value = inputText,
            onValueChange = { inputText = it },
            label = { Text("入力してください") }
        )
        Spacer(modifier = Modifier.height(16.dp))
        Button(onClick = {
            db.collection("users").document(userId)
                .set(mapOf("input" to inputText))
                .addOnSuccessListener { println("保存成功") }
                .addOnFailureListener { println("保存失敗") }
        }) {
            Text("保存")
        }
    }
}

Geminiで生成されたComposeコードにFirebase呼び出しを追加することで、簡単にクラウド連携が可能です。AIによる補完で、非同期処理やエラーハンドリングも自動的に挿入されます。


📘 まとめ

第12回では、Jetpack Composeの代表的コンポーネントであるButtonTextTextFieldを解説しました。Gemini AIを活用することで、入力UIの生成や状態管理の雛形を自動生成でき、開発効率が大幅に向上します。AI生成コードは必ずレビューし、Modifierやスタイルを調整することで、実務レベルのUIを作成できます。次回は、より高度なユーザーインタラクションやリスト表示の実装を扱います。


🤖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

シェアする