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