CodeRoadMap
首页路线题库资源库文章社区
CodeRoadMap

程序员的学习成长路线图。内容免费开放,登录后可同步路线图与课时进度。

由 程序员柏风 独立维护 · 关于作者

学习

  • 路线图
  • 课程
  • 面试题
  • 文章
  • 我

更多

  • 资源
  • 社区
  • 关于作者
  • 内容说明

© 2026 CodeRoadMap

津ICP备2026012044号-1·津公网安备12011002026155号·coderoadmap@126.com
Kotlin 语言入门/课时/Android 与 Compose
RawBlame
课时目录12 节

Kotlin 语言入门

  1. 01Kotlin 是什么
  2. 02基础语法与类型
  3. 03控制流
  4. 04函数与 Lambda
  5. 05集合 API
  6. 06类与 OOP
  7. 07空安全
  8. 08协程
  9. 09JVM 与 Spring
  10. 10Android 与 Compose
  11. 11Ktor 服务端
  12. 12综合练习

Android 与 Compose

Jetpack、Compose Multiplatform 直觉。

30 分钟

Android 与 Compose

Kotlin 是 Android 官方首选语言;Jetpack Compose 用声明式 UI 替代 XML 布局,Kotlin Multiplatform 可共享业务逻辑。

学习目标

  • 了解 Android 项目中的 Kotlin 结构
  • 理解 Jetpack Compose 的基本组件与状态
  • 知道 Compose Multiplatform 的跨平台直觉

Android 项目结构

app/
  src/main/
    java/com/example/app/
      MainActivity.kt       ← Activity 入口
      ui/
        theme/              ← Material 主题
        screens/            ← Compose 界面
    res/                    ← 资源( drawable、values)
  build.gradle.kts

MainActivity 继承 ComponentActivity,setContent { } 挂载 Compose 根节点。

Compose 基础

@Composable
fun LessonCard(slug: String, title: String, onClick: () -> Unit) {
    Card(
        modifier = Modifier
            .fillMaxWidth()
            .padding(8.dp)
            .clickable(onClick = onClick),
        elevation = CardDefaults.cardElevation(defaultElevation = 4.dp)
    ) {
        Column(modifier = Modifier.padding(16.dp)) {
            Text(text = title, style = MaterialTheme.typography.titleMedium)
            Text(text = slug, style = MaterialTheme.typography.bodySmall)
        }
    }
}

@Composable
fun LessonList(lessons: List<Pair<String, String>>) {
    LazyColumn {
        items(lessons) { (slug, title) ->
            LessonCard(slug = slug, title = title, onClick = { })
        }
    }
}

@Composable 函数描述 UI;LazyColumn 类似 RecyclerView 的懒加载列表。

状态与 ViewModel

@Composable
fun TrackScreen(viewModel: TrackViewModel = viewModel()) {
    val lessons by viewModel.lessons.collectAsState()

    Column(modifier = Modifier.fillMaxSize()) {
        Text("Kotlin 语言入门", style = MaterialTheme.typography.headlineMedium)
        LessonList(lessons = lessons)
    }
}

class TrackViewModel : ViewModel() {
    private val _lessons = MutableStateFlow<List<Pair<String, String>>>(emptyList())
    val lessons: StateFlow<List<Pair<String, String>>> = _lessons.asStateFlow()

    init {
        _lessons.value = listOf(
            "kt-intro" to "Kotlin 是什么",
            "kt-syntax" to "基础语法"
        )
    }
}

StateFlow + collectAsState 实现响应式 UI;ViewModel survive 配置变更。

与 Java 对照

Kotlin AndroidJava Android
Compose 声明式 UIXML + findViewById
StateFlow / collectAsStateLiveData + observe
viewModel()ViewModelProvider
协程 launchExecutor / AsyncTask(已弃用)
KMP 共享逻辑各平台分别实现

Android 新工程默认 Kotlin + Compose;维护 Java 老项目时可逐步迁移。

练习

  • 在 Android Studio 创建 Empty Compose Activity 项目
  • 实现 LessonCard 列表,点击打印 slug
  • 浏览 /roadmaps/kotlin 中 Android 相关节点

小结

Kotlin + Compose 是 Android 现代开发标配。 下一课 Ktor 服务端。见 kotlin-essentials。

加载本节练习…
← 上一课JVM 与 Spring下一课 →Ktor 服务端