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 异步数据流

建议学习顺序

  1. 先学 Android 项目结构。
  2. 学会创建一个 Activity。
  3. 学基础 UI 控件或 Jetpack Compose。
  4. 学页面状态管理。
  5. 学本地存储。
  6. 学网络请求。
  7. 做一个完整小 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 序列化 接口数据格式
协程 处理异步任务

建议学习顺序

  1. 理解 HTTP 请求和响应。
  2. 写第一个 GET 接口。
  3. 写 POST 接口接收 JSON。
  4. 连接数据库。
  5. 做用户、文章或订单 CRUD。
  6. 增加参数校验和错误处理。

入门项目 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. 学会读取文件。
  2. 学会写入文件。
  3. 学会遍历目录。
  4. 学会解析命令行参数。
  5. 学会处理字符串和正则。
  6. 做一个真实小工具。

入门项目 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
接口、数据库、服务端逻辑 后端
自动化、本地文件处理、小工具 脚本与工具

如果暂时不知道选哪个,推荐顺序:

  1. 先做脚本与工具方向,因为它最轻量,最适合巩固语法。
  2. 如果你想做 App,再转 Android。
  3. 如果你有 Java 或后端基础,再转 Spring Boot + Kotlin。

4 周实践计划

第 1 周:语法回炉

目标:把前 8 个阶段用项目串起来。

任务:

  • 复习函数、类、集合、空安全。
  • 做一个命令行学生管理程序。
  • 使用 data class 表示学生。
  • 使用 MutableList 保存数据。
  • 使用 filterfind 查询数据。

第 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 语法

### 遇到的问题

### 我是如何解决的

### 下一步优化

必须掌握清单

阶段复盘问题

  1. 你更想用 Kotlin 做 Android、后端还是脚本工具?
  2. 你选择这个方向的原因是什么?
  3. 这个方向最小项目是什么?
  4. 项目中会用到哪些前面学过的 Kotlin 语法?
  5. 你现在最薄弱的语法点是什么?
  6. 下一个 7 天可以完成的最小任务是什么?

学习建议

不要等语法全部「完美掌握」再做项目。更好的方式是:

  1. 用项目暴露问题。
  2. 回头补语法。
  3. 再回项目优化。
  4. 重复这个循环。

学编程最扎实的状态不是「我看懂了」,而是「我能用它做出一个小东西」。

posted @ 2026-06-30 10:59  呢哇哦比较  阅读(5)  评论(0)    收藏  举报