🧸 环境搭建

Compose + ViewModel 状态管理

⚙️ Android Studio 配置 · Compose 编译器版本 · Gradle 依赖

📦 1. Android Studio 配置 Compose

从 Android Studio Flamingo (2022.2.1) 起,Compose 已深度集成。推荐使用最新稳定版。
创建项目时勾选 “Empty Compose Activity” 模板,或手动为已有项目启用 Compose:

📌 Compose 编译器 & Kotlin 版本对照

Compose BOMCompose 编译器KotlinAGP (建议)
2024.02.001.5.101.9.228.2.2
2024.01.001.5.81.9.218.2.1
2023.10.011.5.71.9.208.1.4
2023.08.001.5.41.9.188.1.2

💡 推荐使用 BOM 统一管理 Compose 版本,避免依赖冲突。

🧩 2. Compose 编译器版本选择

Compose 编译器版本必须与 Kotlin 版本严格匹配。可通过 compose-compiler 扩展或 compose.kotlinCompilerExtensionVersion 设置。

✅ 方式 A (BOM + 扩展)
// 模块 build.gradle.kts
android {
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.10"
    }
}
dependencies {
    val composeBom = platform("androidx.compose:compose-bom:2024.02.00")
    implementation(composeBom)
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.material3:material3")
}
✅ 方式 B (libs.versions.toml)
[versions]
compose-bom = "2024.02.00"
compose-compiler = "1.5.10"
kotlin = "1.9.22"

[libraries]
compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "compose-bom" }

[plugins]
kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }

🧭 Compose 编译器 & 依赖架构

Kotlin 1.9.22 Compose 编译器 1.5.10 Compose BOM UI / Material3 2024.02.00 ⬆️ 版本严格匹配,BOM 统一管理 composeOptions.kotlinCompilerExtensionVersion = 编译器版本

📘 3. Gradle 依赖配置

在 build.gradle.kts (Module :app) 中配置 Compose、ViewModel 及生命周期依赖。

📄 完整依赖示例 (推荐)

// app/build.gradle.kts
plugins {
    id("com.android.application")
    id("org.jetbrains.kotlin.android") version "1.9.22"
}

android {
    namespace = "com.example.composevm"
    compileSdk = 34

    buildFeatures {
        compose = true
    }
    composeOptions {
        kotlinCompilerExtensionVersion = "1.5.10"
    }
    defaultConfig {
        minSdk = 24
        targetSdk = 34
    }
}

dependencies {
    // Compose BOM (统一管理所有 Compose 版本)
    val composeBom = platform("androidx.compose:compose-bom:2024.02.00")
    implementation(composeBom)

    // Compose UI 基础
    implementation("androidx.compose.ui:ui")
    implementation("androidx.compose.ui:ui-graphics")
    implementation("androidx.compose.ui:ui-tooling-preview")
    implementation("androidx.compose.material3:material3")
    implementation("androidx.activity:activity-compose:1.8.2")

    // ViewModel + LiveData (状态管理核心)
    implementation("androidx.lifecycle:lifecycle-viewmodel-compose:2.7.0")
    implementation("androidx.lifecycle:lifecycle-runtime-compose:2.7.0")
    implementation("androidx.lifecycle:lifecycle-livedata-ktx:2.7.0")

    // 调试工具
    debugImplementation("androidx.compose.ui:ui-tooling")
    debugImplementation("androidx.compose.ui:ui-test-manifest")
}

🧪 lifecycle-viewmodel-compose → viewModel() 可组合函数 🧪 lifecycle-runtime-compose → collectAsStateWithLifecycle()

🔖 常用 Compose + ViewModel 依赖速查

依赖 (artifact)说明推荐版本 (BOM 2024.02)
compose-bom物料清单 (BOM)2024.02.00
uiCompose UI 核心由 BOM 控制
material3Material Design 3由 BOM 控制
activity-composeActivity + Compose 集成1.8.2
lifecycle-viewmodel-composeViewModel 在 Compose 中使用2.7.0
lifecycle-runtime-compose生命周期感知收集2.7.0

🧑‍🏫 中小学生色系小课堂: 黄色代表活力与创造,橘色代表温暖与专注。用明亮配色让 Compose 学习更轻松!