前言:

Kotlin 是一种在 Java 虚拟机上运行的静态类型编程语言。它主要是 JetBrains 开发团队所开发出来的编程语言。虽然 Kotlin 与 Java 语法并不兼容,但 Kotlin 被设计成可以和 Java 代码相互运作,并可以重复使用如 Java 集合框架等现有 Java 引用的方法库。它很容易在 Android 项目中替代 Java 或者同 Java 一起使用。

如果你是一名 Android 开发,那掌握 Kotlin 语言对你就很重要了,在 Android P 源码、Gradle 源码与 Android Jetpack 库中都已大量使用了 Kotlin 语言。

Kotlin 语言有什么优势?

  • 完全兼容 Java
  • Null safe
  • 支持 lambda 表达式(比 Java8 更好)
  • 支持扩展
  • 体验一致的开发工具链

使用 Kotlin 开发,对于安卓开发来说,主要有下面几个有利的影响:

  • 更少的空指针异常
  • 更少的代码量
  • 更快的开发速度
  • 更一致的开发体验

接下来给大家分享一份学习 Kotlin 的文档资料,【高级 Kotlin 强化实战】,文档内容主要分为:Kotlin 入门教程,Kotlin 实战避坑指南,项目实战《Kotlin Jetpack 实战》三大章节。下面内容是文档大纲,内容比较多,需要详细文档资料可以到文末免费领取哦!

第一章 Kotlin 入门教程

1. Kotlin 概述

  • Kotlin 特点
  • 学习 Kotlin 的意义

2. Kotlin 与 Java 比较

3. 巧用 Android Studio

  • 为已有基于 Java 的 Android 项目添加Kotlin 支持
  • 将 Java 文件转成 Kotlin 文件

4. 认识 Kotlin 基本类型

  • 基本类型代码演练

5. 走进 Kotlin 的数组

  • Kotlin 数组的创建技巧
  • Kotlin 数组的遍历技巧
  • 数组代码演练

6. 走进 Kotlin 的集合

  • 集合的可变性与不可变性
  • 集合排序
  • 集合中的 Set 与 Map

7. 集合问题

  • 两个具有相同键值对,但顺序不同的 Map 相等吗?为什么?
  • 两个具有相同元素,但顺序不同的 list 相等吗?为什么?

8. 完整代码

9. 基础语法

  • 所有 Kotlin 类都是对象 (Everything in Kotlin is an object)
  • 可见性修饰符 (Visibility Modifiers)
  • 变量定义 (Defining Variables)
  • 空安全 (Null Safety)
  • 类型检查与转换 (Type Checks and Casts)
  • if 判断
  • for 循环
  • when
  • 相等性 (Equality)
  • 函数 (Functions)
  • 类 (Classes)
  • 继承 (Inheritance)
  • This 表达式 (Expression)
  • 数据类 (Data Class)
  • 扩展 (Extensions)
  • 委托 (Delegation)

第二章 Kotlin 实战避坑指南

  • 方法入参是常量,不可修改
  • 不要 Companion、INSTANCE?
  • Java 重载,在 Kotlin 中怎么巧妙过渡一下?
  • Kotlin 中的判空姿势
  • Kotlin 复写 Java 父类中的方法
  • Kotlin “狠”起来,连TODO都不放过!
  • is、as 中的坑
  • Kotlin 中的 Property 的理解
  • also 关键字
  • takeIf 关键字
  • 单例模式的写法

第三章 项目实战《Kotlin Jetpack 实战》

1. 从一个膜拜大神的 Demo 开始

  • 简介
  • 截图
  • 工程结构
  • 结尾

2. Kotlin 写 Gradle 脚本是一种什么体验?

  • 简介
  • Kotlin 编写 Gradle 脚本的优势
  • 实战前的准备
  • 开始重构
  • Kotlin DSL 实战--依赖管理

3. Kotlin 编程的三重境界

  • 前期准备
  • 为工程添加 Kotlin 支持
  • 用 Java 视角写 Kotlin
  • 用 Kotlin 视角写 Kotlin
  • 用 Bytecode 视角写 Kotlin

4. Kotlin 高阶函数

  • 前期准备
  • 函数类型,高阶函数,Lambda,它们分别是什么?
  • 为什么要引入 Lambda 和 高阶函数?
  • 带接收者(Receiver)的函数类型:A.(B,C) -> D
  • HTML Kotlin DSL 实战

5. Kotlin 泛型

  • 前期准备
  • 正文

6. Kotlin 扩展

  • 前期准备
  • 正文

7. Kotlin 委托

  • 前期准备
  • 委托类(Class Delegation)
  • 委托属性(Property Delegation)
  • 自定义委托属性
  • 实战
  • 热身
  • 委托属性 + SharedPreferences

8. 协程“不为人知”的调试技巧

  • 前期准备
  • 协程 JVM 参数
  • Kotlin 1.4 协程调试
  • 总结

9. 图解协程:suspend

  • 前言
  • 前期准备
  • 线程 & 协程
  • 异步代码 & 回调地狱
  • 地狱到天堂:协程
  • suspend 的本质
  • CPS 转换
  • 字节码反编译
  • 协程状态机动画演示

点击 《高级 Kotlin 强化实战》 免费领取