课程目录
开篇词 (1讲)
- 开篇词 _ 入门Kotlin有多容易,精通Kotlin就有多难
春节特别放送 (4讲)
- 春节刷题计划(一)_ 当Kotlin遇上LeetCode
- 春节刷题计划(三)_ 一题双解,搞定求解方程
- 春节刷题计划(二)_ 一题三解,搞定版本号判断
- 春节刷题计划(四)_ 一题三解,搞定分式加减法
答疑篇 (1讲)
- 答疑(一)_ Java和Kotlin到底谁好谁坏?
基础篇 (16讲)
- 01 _ Kotlin基础语法:正式开启学习之旅
- 02 _ 面向对象:理解Kotlin设计者的良苦用心
- 03 _ Kotlin原理:编译器在幕后干了哪些“好事”?
- 04 _ 实战:构建一个Kotlin版本的四则运算计算器
- 05 _ object关键字:你到底有多少种用法?
- 06 _ 扩展:你的能力边界到底在哪里?
- 07 _ 高阶函数:为什么说函数是Kotlin的“一等公民”?
- 08 _ 实战:用Kotlin写一个英语词频统计程序
- 09 _ 委托:你为何总是被低估?
- 10 _ 泛型:逆变or协变,傻傻分不清?
- 11 _ 注解与反射:进阶必备技能
- 12 _ 实战:用Kotlin实现一个网络请求框架KtHttp
- 加餐一 _ 初识Kotlin函数式编程
- 加餐三 _ 什么是“不变性思维”?
- 加餐二 _ 什么是“表达式思维”?
- 加餐四 _ 什么是“空安全思维”?
协程篇 (14讲)
- 13 _ 什么是“协程思维模型”?
- 14 _ 如何启动协程?
- 15 _ 挂起函数:Kotlin协程的核心
- 16 _ Job:协程也有生命周期吗?
- 17 _ Context:万物皆为Context?
- 18 _ 实战:让KtHttp支持挂起函数
- 19 _ Channel:为什么说Channel是“热”的?
- 20 _ Flow:为什么说Flow是“冷”的?
- 21 _ select:到底是在选择什么?
- 22 _ 并发:协程不需要处理同步吗?
- 23 _ 异常:try-catch居然会不起作用?坑!
- 24 _ 实战:让KtHttp支持Flow
- 期中考试 _ 用Kotlin实现图片处理程序
- 题目解答 _ 期中考试版本参考实现
源码篇 (9讲)
- 25 _ 集合操作符:你也会“看完就忘”吗?
- 26 _ 协程源码的地图:如何读源码才不会迷失?
- 27 _ 图解挂起函数:原来你就是个状态机?
- 28 _ launch的背后到底发生了什么?
- 29 _ Dispatchers是如何工作的?
- 30 _ CoroutineScope是如何管理协程的?
- 31 _ 图解Channel:如何理解它的CSP通信模型?
- 32 _ 图解Flow:原来你是只纸老虎?
- 加餐五 _ 深入理解协程基础元素
Android项目篇 (3讲)
- 33 _ Java Android开发者还会有未来吗?
- 34 _ Kotlin与Jetpack简直是天生一对!
- 35 _ 用Kotlin写一个GitHub Trending App
结束语 (2讲)
- 结束语 _ 不忘初心
- 结课测试 _ “Kotlin编程第一课”100分试卷等你来挑战!




