|
本课程分为三部分。1 @2 w0 u- H7 q9 p j
第一部分会帮助你快速熟悉 Kotlin 的特有语法特性,以及在与 Java 项目产生冲突时如何解决。) k! s" @1 n6 Q i( X- }
第二部分将带你深入的理解 Kotlin 语言的高级特性以及 Kotlin 特有语法背后的运行原理,同时掌握 Kotlin 协程库和 Google 推出的 KTX 扩展库的使用与内部实现原理。6 g. ]: m" f. y# w5 T
第三部分将为你讲解 Kotlin 作为跨平台语言的特性,并介绍将 Java 项目迁移至 Kotlin 时需要注意的地方,更深入地理解 Kotlin 的优势和劣势,灵活利用 Kotlin 的扩展库以及跨平台特性,帮助团队更高效地进行实际项目的开发。* D7 Q+ K1 l: G9 l& O5 |4 A( y
课程目录:7 w# H! q( H/ }1 V+ \# u
第一章:快速上手篇 (12讲)
4 Q% r" n" z& W+ \01 | 讲给你的 Kotlin 快速上手课程6 N- p' L- \+ |, x7 g' z
02 | Kotlin 最基础语法
' X5 \1 N% I/ V2 @" \03 | Kotlin 与 Java 完全兼容,就可以随便调用了吗?& U. \9 d, W3 i# U0 c
04 | 新手使用 Kotlin 常碰到的问题9 i" R8 v6 P5 Z) ~% h
05 | 函数也能嵌套?这个特性要注意
/ Q8 Q$ |+ m) h# O06 | 用扩展函数简化代码调用# p! e5 C- k# c1 K% l4 G' Y4 M, S
07 | DSL的基础 : Lambda闭包的语法: G( U1 C# p( m. T2 {6 L
08 | 函数的参数是函数 : 高阶函数的注意事项
0 |8 v, R7 @, H! ~3 V x09 | 创建对象的关键 : Kotlin的构造函数$ _+ `5 b: c0 ?$ J; S( [7 P3 ]
10 | 伴生对象 : Kotlin 特有的单例对象
* w: h0 d4 `% \1 ?# Z# U3 R. f5 f, l11 | by关键字的使用
5 l1 _1 J. X' u12 | Kotlin 独有的特殊类
: R1 C+ B. Q% ?% {$ ^ s第二章 :深入学习篇 (13讲), |3 L$ Z7 N% R/ S
13 | 解构 : 特殊的数据拆箱方式
) y5 G6 v% O ]3 t) H+ A14 | Kotlin 的循环语法
& \& |' L5 I2 U9 b- Y7 {# k15 | Kotlin海量的集合操作符9 z H, i6 l" |" o9 x) h6 ]" s
16 | 作用域函数 : 你会爱上的自带函数
0 w" s7 _9 F0 w8 g0 A% W- Z0 a17 | 运算符与中缀 : 定义你的专有运算符" W; [1 A: @) A
18 | 神奇的符号 : Kotlin 的反引号9 M/ }. X% X. s5 x( Y" _4 r
19 | DSL 是什么,原来早就用过了# d5 q. g3 r! \9 x, i) r1 H# [
20 | 构建 DSL 的常用方式& E; a* _) C& t4 [4 r1 l) [: V
21 | 定义自己的 DSL. x+ p b! G' A% }% e
22 | 理解 Kotlin 中的常量与只读
$ J5 [$ b2 v0 H- g23 | Kotlin 的空安全是如何实现的: o3 `% z6 _. L( j7 J! A
24 | Kotlin 内联 : noinline与crossinline
, D0 p0 l4 i6 M$ _+ J25 | Kotlin 的真泛型与实现方式: q* ~% ?8 K) i5 D& {. m4 g5 ?- U
第三章 :扩展库篇 (14讲)+ \0 R# N( j. b( |
26 | 协程 : 提升性能的利器& T& i. Y! y1 V5 T0 h' R+ r
27 | 在Kotlin 中使用协程
0 Y0 p3 R$ o+ c7 w; K28 | 协程的启动参数
2 ~: r: ^ T' U( f" J) I. P- d29 | 协程的语法糖
0 B/ G- x9 q" l1 W8 O D |30 | suspend : 知其然知其所以然. c$ e4 N' U1 c; j2 {2 i
31 | 协程的内部实现原理. f8 h3 N5 `7 p1 N
32 | 动手设计Kotlin 协程的yield0 q' n4 K- s5 Z) w
33 | 协程通信:Channel的使用
2 t9 Z# J' s& t* ?34 | 小结 : 动手设计Channel版的EventBus, M: n0 g4 q/ a2 t
35 | NIO 与 BIO4 t& u! F( U0 I& l. L
36 | Kotlinx-io 的对象缓存池& q e) P+ B2 e
37 | Google 推出 KTX 的目的
! f( S1 v4 [$ r" j. d( H38 | KTX 的实现# L" p2 Q$ e4 O; _" ]
39 | KTX 小结
' T0 @* N3 \) r- M, G9 f第四章 :团队协作篇 (3讲)
$ s# e3 X1 Q }$ e: ?40 | 在团队中使用 Kotlin
5 G; }- `) Y+ s2 y41 | 用 Kotlin 改写现有工程
& Z# c% K9 V% {: m- ]6 f; E42 | 滥用特性的后果:没人懂的代码
% X+ L$ x2 ~0 K, }+ q, n第五章 :Kotlin 跨平台篇 (8讲)+ c* h1 s; D% H0 Q
43 | Kotlin 服务端开发框架# z5 |# N7 ]2 r9 `8 |1 O. r6 R
44 | Http Servlet 创建 Kotlin 版 Web 应用
n+ }- `# x% r* {% i45 | Spring Boot 创建 RESTful Web 服务" u8 ]* J- \) v5 H
46 | Kotlin 开发 Web 前端) ?6 N) y1 V1 r; e, O1 Z
47 | Kotlin Native 开发8 e' e M' b: O
48 | 创建 Kotlin Native 基础库1 Q! g. M2 b2 H* d6 ~0 B! R3 p
49 | 如何用 Kotlin 实现 Android MVP
" W0 B8 ?% g; Q7 B( }3 p50 | Android MVP 的 Kotlin 代码& u. ?/ m, `6 `- Z! W
' H3 j# \7 E* }1 t
% J, b5 M1 \% W, l' U/ s2 u; S
% s6 D, I* J3 x
|
|