第15回|Compose⑤:テーマとMaterial3デザイン[AI]
⚙️ 準備と環境設定
Jetpack Composeでアプリのデザインを統一するためには、テーマ設定とMaterial3のカラースキーム活用が重要です。第15回では、Composeにおけるテーマ設定の基本、Material3のカラー定義、Gemini AIによるデザイン調整例を解説します。
![第15回|Compose⑤:テーマとMaterial3デザイン[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以上
- Material3ライブラリ導入済み
- Gemini AIプラグイン有効化済み
プロジェクトのbuild.gradleにMaterial3依存関係を追加します:
dependencies {
implementation "androidx.compose.material3:material3:1.2.0"
}
🤖 Geminiによる支援の使い方
Gemini AIに「Material3テーマとカラースキームを定義するComposeコードを生成」と入力すると、ColorSchemeやMaterialThemeの雛形コードを自動生成できます。さらに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設計の効率と精度を向上させることが可能です。
「※本ブログはこの一文以外は、AIによる記載です。内容にウソが含まれている可能性がありますので、ご注意ください。写真もAIで作成しています。」