Kotlin第九阶段学习内容详情
Kotlin 第九阶段学习内容详情:选择实践方向
本阶段目标是从「学习语法」过渡到「用 Kotlin 做东西」。前 8 个阶段学的是语言基础,第 9 阶段要根据你的目标选择实践方向:Android、后端或脚本工具。
建议用时:持续 2-4 周作为入门实践期。
阶段目标
- 明确 Kotlin 后续学习方向。
- 知道 Android、后端、脚本工具分别要学什么。
- 每个方向都有清晰的小项目练习。
- 能用前面学过的语法完成一个最小可用项目。
- 建立「边做项目边补知识」的学习方式。
方向一:Android 开发
适合目标:
- 想开发手机 App。
- 想做界面、交互、移动端功能。
- 以后想学习 Jetpack Compose 或 Android 原生开发。
需要继续学习的内容
| 内容 | 作用 |
|---|---|
| Activity | Android 页面入口 |
| Fragment | 页面模块 |
| ViewModel | 管理页面状态 |
| Jetpack Compose | Kotlin 风格的声明式 UI |
| Room | 本地数据库 |
| Retrofit | 网络请求 |
| Kotlin Flow | 异步数据流 |
建议学习顺序
- 先学 Android 项目结构。
- 学会创建一个 Activity。
- 学基础 UI 控件或 Jetpack Compose。
- 学页面状态管理。
- 学本地存储。
- 学网络请求。
- 做一个完整小 App。
入门项目 1:待办清单 App
功能要求:
- 添加待办事项。
- 展示待办列表。
- 标记已完成。
- 删除待办事项。
- 使用本地数据保存。
会用到的 Kotlin 能力:
data class表示待办事项。List展示列表。MutableList管理增删改。- 空安全处理输入。
- 函数封装业务逻辑。
数据模型示例:
data class Todo(
val id: Long,
val title: String,
val completed: Boolean
)
入门项目 2:天气 App
功能要求:
- 输入城市名。
- 请求天气数据。
- 展示温度、天气状态、更新时间。
- 处理加载中、成功、失败 3 种状态。
会用到的 Kotlin 能力:
data class表示天气数据。- 协程处理网络请求。
when表示页面状态。- 空安全处理接口返回。
状态模型示例:
sealed class WeatherState {
object Loading : WeatherState()
data class Success(val weather: Weather) : WeatherState()
data class Error(val message: String) : WeatherState()
}
data class Weather(
val city: String,
val temperature: Int,
val description: String
)
sealed class 属于后续进阶内容,现在可以先知道它常用于表示有限状态。
方向二:后端开发
适合目标:
- 想写接口服务。
- 想做 Web 后端。
- 想用 Kotlin 替代部分 Java 后端代码。
需要继续学习的内容
| 内容 | 作用 |
|---|---|
| Spring Boot + Kotlin | 企业后端常用组合 |
| Ktor | Kotlin 官方风格更强的后端框架 |
| REST API | 常见接口设计方式 |
| 数据库访问 | 保存和查询数据 |
| JSON 序列化 | 接口数据格式 |
| 协程 | 处理异步任务 |
建议学习顺序
- 理解 HTTP 请求和响应。
- 写第一个 GET 接口。
- 写 POST 接口接收 JSON。
- 连接数据库。
- 做用户、文章或订单 CRUD。
- 增加参数校验和错误处理。
入门项目 1:用户管理接口
功能要求:
- 创建用户。
- 查询用户列表。
- 根据 ID 查询用户。
- 修改用户信息。
- 删除用户。
会用到的 Kotlin 能力:
data class表示请求和响应。List或数据库保存用户。find查找用户。- 空安全处理用户不存在。
when处理不同结果。
数据模型示例:
data class User(
val id: Long,
val name: String,
val age: Int
)
data class ApiResponse<T>(
val code: Int,
val data: T?,
val message: String
)
入门项目 2:文章管理系统
功能要求:
- 新建文章。
- 查询文章列表。
- 按标题搜索。
- 修改文章。
- 删除文章。
会用到的 Kotlin 能力:
data class建模。filter搜索文章。sortedByDescending按时间排序。- 泛型结果包装。
- 异常处理。
数据模型示例:
data class Article(
val id: Long,
val title: String,
val content: String,
val author: String,
val createdAt: Long
)
方向三:脚本与工具开发
适合目标:
- 想用 Kotlin 写小工具。
- 想自动处理文件、文本、日志。
- 想把 Kotlin 当作更强的脚本语言使用。
需要继续学习的内容
| 内容 | 作用 |
|---|---|
| Kotlin Script | 写脚本 |
| 文件读写 | 处理本地文件 |
| 命令行参数 | 接收用户输入 |
| JSON 解析 | 处理结构化数据 |
| 正则表达式 | 处理文本 |
建议学习顺序
- 学会读取文件。
- 学会写入文件。
- 学会遍历目录。
- 学会解析命令行参数。
- 学会处理字符串和正则。
- 做一个真实小工具。
入门项目 1:Markdown 目录生成工具
功能要求:
- 读取一个 Markdown 文件。
- 找出所有标题。
- 生成目录。
- 输出到控制台或写回文件。
会用到的 Kotlin 能力:
- 字符串处理。
filter筛选标题行。map转换标题格式。- 函数封装。
核心逻辑示例:
fun extractHeadings(lines: List<String>): List<String> {
return lines.filter { it.startsWith("#") }
}
入门项目 2:日志分析工具
功能要求:
- 读取日志文件。
- 统计错误数量。
- 找出包含
ERROR的行。 - 按关键字输出结果。
会用到的 Kotlin 能力:
- 文件读取。
- 集合筛选。
- 字符串匹配。
- 分组统计。
核心逻辑示例:
fun findErrorLines(lines: List<String>): List<String> {
return lines.filter { it.contains("ERROR") }
}
入门项目 3:批量重命名工具
功能要求:
- 遍历指定目录。
- 找出符合条件的文件。
- 批量重命名。
- 输出处理结果。
会用到的 Kotlin 能力:
- 文件 API。
- 条件判断。
- 循环。
- 异常处理。
如何选择方向
可以按下面的问题判断:
| 如果你更想做 | 推荐方向 |
|---|---|
| 手机 App、界面、交互 | Android |
| 接口、数据库、服务端逻辑 | 后端 |
| 自动化、本地文件处理、小工具 | 脚本与工具 |
如果暂时不知道选哪个,推荐顺序:
- 先做脚本与工具方向,因为它最轻量,最适合巩固语法。
- 如果你想做 App,再转 Android。
- 如果你有 Java 或后端基础,再转 Spring Boot + Kotlin。
4 周实践计划
第 1 周:语法回炉
目标:把前 8 个阶段用项目串起来。
任务:
- 复习函数、类、集合、空安全。
- 做一个命令行学生管理程序。
- 使用
data class表示学生。 - 使用
MutableList保存数据。 - 使用
filter、find查询数据。
第 2 周:选择方向并搭环境
目标:确定主攻方向。
任务:
- Android:创建第一个 Android 项目。
- 后端:创建第一个 Kotlin 后端项目。
- 脚本:创建第一个文件处理工具。
- 跑通一个最小示例。
第 3 周:完成第一个小项目
目标:做一个最小可用版本。
任务:
- 只做核心功能。
- 不追求功能多。
- 每个功能都拆成小函数。
- 遇到重复代码就考虑封装。
第 4 周:重构和补知识
目标:让项目更像真实代码。
任务:
- 整理数据模型。
- 拆分函数和类。
- 增加异常处理。
- 增加空安全处理。
- 写一份项目 README。
最推荐的过渡项目:命令行学生管理系统
如果你还没决定方向,可以先做这个项目。
功能要求
- 添加学生。
- 展示所有学生。
- 按姓名查找学生。
- 按分数筛选及格学生。
- 统计平均分。
- 按分数排序。
示例模型
data class Student(
val id: Long,
val name: String,
val score: Int
)
示例代码
data class Student(
val id: Long,
val name: String,
val score: Int
)
fun findStudentByName(students: List<Student>, name: String): Student? {
return students.find { it.name == name }
}
fun getPassedStudents(students: List<Student>): List<Student> {
return students.filter { it.score >= 60 }
}
fun getAverageScore(students: List<Student>): Double {
return if (students.isEmpty()) {
0.0
} else {
students.sumOf { it.score }.toDouble() / students.size
}
}
fun main() {
val students = listOf(
Student(1, "Alice", 95),
Student(2, "Bob", 58),
Student(3, "Cindy", 76)
)
println(findStudentByName(students, "Alice") ?: "学生不存在")
println(getPassedStudents(students))
println(getAverageScore(students))
println(students.sortedByDescending { it.score })
}
项目复盘模板
每完成一个项目,用下面模板复盘:
## 项目名称
### 项目目标
### 已完成功能
### 用到的 Kotlin 语法
### 遇到的问题
### 我是如何解决的
### 下一步优化
必须掌握清单
阶段复盘问题
- 你更想用 Kotlin 做 Android、后端还是脚本工具?
- 你选择这个方向的原因是什么?
- 这个方向最小项目是什么?
- 项目中会用到哪些前面学过的 Kotlin 语法?
- 你现在最薄弱的语法点是什么?
- 下一个 7 天可以完成的最小任务是什么?
学习建议
不要等语法全部「完美掌握」再做项目。更好的方式是:
- 用项目暴露问题。
- 回头补语法。
- 再回项目优化。
- 重复这个循环。
学编程最扎实的状态不是「我看懂了」,而是「我能用它做出一个小东西」。

浙公网安备 33010602011771号