|
本课程分为三部分。9 n# E( M3 T" f' z3 t8 y" X; Z
第一部分会帮助你快速熟悉 Kotlin 的特有语法特性,以及在与 Java 项目产生冲突时如何解决。9 ^$ D u3 p% `' q8 B6 Z* ]3 j3 B
第二部分将带你深入的理解 Kotlin 语言的高级特性以及 Kotlin 特有语法背后的运行原理,同时掌握 Kotlin 协程库和 Google 推出的 KTX 扩展库的使用与内部实现原理。; D8 o3 d4 }; }4 Z
第三部分将为你讲解 Kotlin 作为跨平台语言的特性,并介绍将 Java 项目迁移至 Kotlin 时需要注意的地方,更深入地理解 Kotlin 的优势和劣势,灵活利用 Kotlin 的扩展库以及跨平台特性,帮助团队更高效地进行实际项目的开发。
# l8 C2 C- C" [, K& p$ h课程目录:
( r6 H7 U1 J7 E8 }1 m第一章:快速上手篇 (12讲)
6 I7 k1 Y$ W' l01 | 讲给你的 Kotlin 快速上手课程7 a- h: C9 C5 { u
02 | Kotlin 最基础语法
; K2 s4 w! h7 J6 V F: v9 Z: H03 | Kotlin 与 Java 完全兼容,就可以随便调用了吗?( z( P. {& v/ d1 K5 X3 B
04 | 新手使用 Kotlin 常碰到的问题0 }: |2 o- B$ L' @( l3 A# l, Z3 N
05 | 函数也能嵌套?这个特性要注意. r0 L) D0 \8 X8 o8 U' T& L. [1 M
06 | 用扩展函数简化代码调用
4 {# M" o3 \# c$ o! O07 | DSL的基础 : Lambda闭包的语法
2 T @" f2 T: z0 n. H# k! H08 | 函数的参数是函数 : 高阶函数的注意事项
! i7 _7 c$ L; X/ R3 j2 ^( n09 | 创建对象的关键 : Kotlin的构造函数* X6 ~" W% Q- @6 H; p' z ?
10 | 伴生对象 : Kotlin 特有的单例对象4 f$ _2 W5 S' h. D0 `
11 | by关键字的使用7 l) f$ A% M4 z# C, K, F
12 | Kotlin 独有的特殊类) D5 {! Q8 |" w' A+ c1 [
第二章 :深入学习篇 (13讲)
+ W7 B$ ~" _! s |6 o3 y }6 E13 | 解构 : 特殊的数据拆箱方式" @ v0 I$ |& p. `% l% A) d0 J0 L
14 | Kotlin 的循环语法
4 e4 \* U3 N/ i15 | Kotlin海量的集合操作符1 i2 D8 d% C/ C& U' ?
16 | 作用域函数 : 你会爱上的自带函数
) [ o! D- K3 x17 | 运算符与中缀 : 定义你的专有运算符! P* W: f; @7 e3 O# D# g$ v# ~
18 | 神奇的符号 : Kotlin 的反引号
9 N7 f% }4 p9 s% {6 P19 | DSL 是什么,原来早就用过了 q2 k( u/ q r) v
20 | 构建 DSL 的常用方式
0 Y( ]* m3 z+ M9 J. N7 j1 l) B21 | 定义自己的 DSL! z) g' S6 K: Y
22 | 理解 Kotlin 中的常量与只读
4 W/ y6 X8 v8 N2 P4 m8 s2 b! `0 j23 | Kotlin 的空安全是如何实现的$ r' D. F' q8 i, b0 B X
24 | Kotlin 内联 : noinline与crossinline8 g( ^, j; M6 O+ I1 H% q7 y$ Z- c
25 | Kotlin 的真泛型与实现方式
j( l2 z, Y9 d+ F$ I第三章 :扩展库篇 (14讲)& J& X: K; W) i* Q- m3 q2 P
26 | 协程 : 提升性能的利器
# D" u: q L: o# R6 f27 | 在Kotlin 中使用协程
+ w: B& `* K7 l ~28 | 协程的启动参数
( r6 m4 @' {$ k) \; R29 | 协程的语法糖7 o7 T. O2 H, E, n' A2 j
30 | suspend : 知其然知其所以然
) g/ }; x+ ^- r1 Y+ ^5 i. @31 | 协程的内部实现原理2 k y0 \, p6 I; M7 E$ f6 [8 \8 d
32 | 动手设计Kotlin 协程的yield
, w' }4 P6 C' r: o0 m33 | 协程通信:Channel的使用# O" q4 v8 Y- R+ P
34 | 小结 : 动手设计Channel版的EventBus6 q5 P/ ?- Z& h+ c* M
35 | NIO 与 BIO
8 R: I! g' q$ @2 H36 | Kotlinx-io 的对象缓存池1 @- [; K" `. \. p
37 | Google 推出 KTX 的目的& d. a4 x W3 n5 q) m+ P4 X
38 | KTX 的实现' C! l4 S& k$ x: A$ ]: ?- ~
39 | KTX 小结
% @3 ~9 c! w! i" v* |+ l! V6 n: {第四章 :团队协作篇 (3讲)4 g S8 o, [# t8 u
40 | 在团队中使用 Kotlin. X2 k, S& o8 Z" K( ^
41 | 用 Kotlin 改写现有工程
4 X% S- n8 I6 L# V42 | 滥用特性的后果:没人懂的代码8 B& p1 u. P( i6 b4 a
第五章 :Kotlin 跨平台篇 (8讲). c- G. D$ F1 d' C
43 | Kotlin 服务端开发框架/ N2 b Q2 V& g% C& F7 B
44 | Http Servlet 创建 Kotlin 版 Web 应用" E4 E8 R. j" @% \* ~
45 | Spring Boot 创建 RESTful Web 服务 M; v. k- N; Z1 o! W$ o
46 | Kotlin 开发 Web 前端
$ [2 C1 A+ a5 [* ?: m47 | Kotlin Native 开发
. Y. i. K. S7 ]4 B; M48 | 创建 Kotlin Native 基础库' [6 f h# z- r! F/ |0 v
49 | 如何用 Kotlin 实现 Android MVP
& w6 H& t" R; _6 H" v50 | Android MVP 的 Kotlin 代码, c/ {$ b, k4 J3 a5 M* l' t" a7 m
$ ^7 [$ u; }. c, w' c7 E# y
& f9 J2 i( U T2 }
E! f, M, q1 C
|
|