再见,Java。你好,Kotlin

前言

在 2019 年 Google I/O 大会上,谷歌宣布今后将优先采用 Kotlin 进行 Android 开发,并且也坚守了这一承诺。

为什么要优先使用 Kotlin 进行 Android 开发?

    富有表现力且简洁:您可以使用更少的代码实现更多的功能。表达自己的想法,少编写样板代码。在使用 Kotlin 的专业开发者中,有 67% 的人反映其工作效率有所提高。 更安全的代码:Kotlin 有许多语言功能,可帮助您避免 null 指针异常等常见编程错误。包含 Kotlin 代码的 Android 应用发生崩溃的可能性降低了 20%。 可互操作:您可以在 Kotlin 代码中调用 Java 代码,或者在 Java 代码中调用 Kotlin 代码。Kotlin 可完全与 Java 编程语言互操作,因此您可以根据需要在项目中添加任意数量的 Kotlin 代码。 结构化并发:Kotlin 协程让异步代码像阻塞代码一样易于使用。协程可大幅简化后台任务管理,例如网络调用、本地数据访问等任务的管理。
经常有人问我,抛弃Java改用Kotlin后,你遇到了哪些坑,是否会后悔而又重返Java?

完全回不去,也没有理由回去。

  1. kotlin和java可以混编,不会用写的用java过渡一段时间,项目接入成本极低
  2. java代码贴过去自动转换,又消除了一波不会写的人
  3. 各大框架都有kotlin支持,特别是spring
  4. kotlin这门语言是jetbrains开发的,jetbrains做ide深知开发痛点和难处,所以用起来极爽
  5. 语言特性极好,但不复杂,这个很重要! Scala同为Java的超集,语言太复杂导致难以使用 Groovy号称把java后缀改为groovy即可使用,但是太过动态导致很多场景使用者无所适从(没有提示)
  6. 接入成本问题: 运行时加入kotlin-stdlib包和启用kotlin-maven-plugin(gradle类似)即可,对运行时的现有代码完全没有影响。
  7. kotlin的Sequence完爆Java8的Stream,然鹅做业务集合操作是家常便饭,这点极大提高代码效率
  8. 我的项目接入kotlin之后和java开发并行了一段时间,其他人都觉得用得爽慢慢转过来,然而我并没有大力地推动过
  9. 至于有哪些坑?我还真没遇到过,连NPE都少了,现在为止出的所有bug都是java代码侧的。

如何学

第一章 Kotlin协程的基础介绍

    协程是什么 什么是Job 、Deferred 、协程作用域 Kotlin协程的基础用法

第二章 kotlin协程的关键知识点初步讲解

    协程调度器 协程调度器 协程启动模式 协程作用域 挂起函数

第三章 kotlin协程的异常处理

    协程异常的产生流程 协程的异常处理

第四章 kotlin协程在Android中的基础应用

    Android使用kotlin协程 在Activity与Framgent中使用协程 ViewModel中使用协程 其他环境下使用协程

第五章 kotlin协程的网络请求封装

    协程的常用环境 协程在网络请求下的封装及使用 高阶函数方式 多状态函数返回值方式 直接返回值的方式

第六章 深入kotlin协程原理(一)

    suspend 的花花肠子 藏在身后的- Continuation 村里的希望- SuspendLambda

第七章 深入kotlin协程原理(二)

    协程的那些小秘密 协程的创建过程 协程的挂起与恢复 协程的执行与状态机

第八章 Kotlin Jetpack 实战

    从一个膜拜大神的 Demo 开始 Kotlin 写 Gradle 脚本是一种什么体验? Kotlin 编程的三重境界 Kotlin 高阶函数 Kotlin 泛型 Kotlin 扩展 Kotlin 委托 协程“不为人知”的调试技巧 图解协程原理

第九章 Kotlin + 协程 + Retrofit + MVVM优雅的实现网络请求

    项目配置 实现思路 协程实现 协程 + ViewModel + LiveData实现 后续优化 异常处理 更新Retrofit 2.6.0
经验分享 程序员 微信小程序 职场和发展