第15回|Compose⑤:テーマとMaterial3デザイン[AI]


⚙️ 準備と環境設定

Jetpack Composeでアプリのデザインを統一するためには、テーマ設定とMaterial3のカラースキーム活用が重要です。第15回では、Composeにおけるテーマ設定の基本、Material3のカラー定義、Gemini AIによるデザイン調整例を解説します。

Android Studio Otter
Android Studio Otter

1. 開発環境の確認

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

プロジェクトのbuild.gradleにMaterial3依存関係を追加します:

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

🤖 Geminiによる支援の使い方

Gemini AIに「Material3テーマとカラースキームを定義するComposeコードを生成」と入力すると、ColorSchemeMaterialThemeの雛形コードを自動生成できます。さらにAI提案では、ダークモードやアクセントカラー変更などのパターンも提示されます。

// Geminiへのプロンプト例
"Jetpack ComposeでMaterial3テーマを作り、ライト/ダークモード対応のカラースキームを生成"

💡 Kotlinでの実装例

2. Material3テーマ定義

private val LightColors = lightColorScheme(
    primary = Color(0xFF6750A4),
    onPrimary = Color.White,
    secondary = Color(0xFF625B71),
    onSecondary = Color.White,
    background = Color(0xFFFFFBFE),
    onBackground = Color(0xFF1C1B1F),
    surface = Color(0xFFFFFBFE),
    onSurface = Color(0xFF1C1B1F)
)

private val DarkColors = darkColorScheme(
    primary = Color(0xFFD0BCFF),
    onPrimary = Color(0xFF381E72),
    secondary = Color(0xFFCCC2DC),
    onSecondary = Color(0xFF332D41),
    background = Color(0xFF1C1B1F),
    onBackground = Color(0xFFE6E1E5),
    surface = Color(0xFF1C1B1F),
    onSurface = Color(0xFFE6E1E5)
)

@Composable
fun AppTheme(
    darkTheme: Boolean = isSystemInDarkTheme(),
    content: @Composable () -> Unit
) {
    val colors = if (darkTheme) DarkColors else LightColors

    MaterialTheme(
        colorScheme = colors,
        typography = Typography(),
        content = content
    )
}

このコードでは、ライトモードとダークモードのカラースキームを定義し、MaterialThemeに適用しています。isSystemInDarkTheme()を利用することで、OSのテーマに自動対応可能です。

3. AI提案によるデザイン調整例

Gemini AIに「アプリのメインボタンのアクセントカラーを強調」と指示すると、primaryカラーやButtonColorsの候補コードを生成してくれます。

@Composable
fun PrimaryButtonExample(onClick: () -> Unit) {
    Button(
        onClick = onClick,
        colors = ButtonDefaults.buttonColors(containerColor = MaterialTheme.colorScheme.primary)
    ) {
        Text("アクションボタン", color = MaterialTheme.colorScheme.onPrimary)
    }
}

このように、GeminiのAI支援を活用することで、カラー変更やアクセント調整もコード生成で簡単に対応できます。


🧩 FirebaseまたはCloudとの連携

テーマ設定自体は直接クラウドと関係しませんが、Firebase Remote Configを使うことで、アプリのカラースキームやUI設定を動的に変更可能です。例えば、季節ごとのカラーテーマ切替をサーバー側で制御できます。

val remoteConfig = Firebase.remoteConfig
val primaryColor = remoteConfig.getLong("primary_color")?.toInt() ?: 0xFF6750A4
val dynamicColors = lightColorScheme(primary = Color(primaryColor))

この手法により、アプリのUIをリリース後も柔軟に更新可能です。Gemini AIを使えば、Remote Configの取得コードも自動生成できます。


📘 まとめ

第15回では、Jetpack ComposeのMaterial3テーマ設定とカラースキームの基本を解説しました。ライト・ダークモード対応やアクセントカラー調整を行うことで、統一感のあるデザインを実現できます。Gemini AIを活用すると、テーマ定義やデザイン調整の雛形コードを自動生成でき、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

シェアする