前言
这几年,Google 大力发展基于 Kotlin 的 Androidx 库、Jetpack 库、Compose 库,很多新特性都是为 Kotlin 优化的。可以说,不懂 kotlin,今后在 Android 开发领域标准库的发展上将很受阻碍,Android 开发由 Java 转 Kotlin 早已势不可挡。
文章图片
做 Android 的应该没有几个不知道扔物线朱凯的,他是中国唯一的 Android GDE 和 Kotlin GDE(谷歌官方认证开发专家,这样的人在全世界仅 18 位),很多人的自定义 View 和 Kotlin 都是通过他的技术视频带进门的。凯哥的技术视频既轻松搞笑又浅显易懂,同时又有惊人的技术深度。
分享一下凯哥采访 Kotlin 和 Android 官方的视频!
凯哥跟 Android 和 Kotlin 官方聊了什么?
灵魂拷问之一:Kotlin会被Android抛弃吗?
这个二货,竟然当面问出如此犀利的问题!我也是醉了……
那么,Kotlin 到底会被 Android 抛弃吗?
Android 官方对此的回复是:
绝!对!不!会!
并且说道,Google 自己在内部也有 55 个 app 都已经在用 Kotlin 开发了。而且这位 Google 大佬还跟凯哥透露,Android 团队还会参与 Kotlin 的开发与决策过程。这么看来,Kotlin 真的是很安全了。
但……二货就是二货,他问了更狠的
凯哥的问题没有最犀利,只有更犀利:
灵魂拷问之二:Java会被Android抛弃吗?
如此直白发问,除了光头扔物线,大概也没谁了吧……
顺便也说一下 Android 官方对于这个问题的回答:Java 也是不会抛弃的,因为 Android 的系统源码就是 Java 写的,没必要抛弃。但 Google 大佬和凯哥也都在视频里建议,不要把「Android 抛不抛弃 Java 作为用不用 Kotlin 的判断依据」,因为 Kotlin 「是未来」。
文章图片
为什么说Kotlin是未来
相比起 Java 语言,Kotlin 的优势确实非常明显:
第一,极高的生产效率。Kotlin 是一种跨平台的静态类型语言,具有现代简洁的语法,关键特性包括 null 安全性、协程、数据类型、扩展函数等;这让开发者会用得很爽:前期开发效率更高,中期线上问题更少,后期代码更容易维护。而这正是 Java 做不到的。
第二,强大的兼容性。Kotlin 可以与 Java 混合编程(说实话,这点影响很大),我们能够以渐进的方式将项目工程从 Java 迁移到 Kotlin,而不必担心是不是要一次性重写很多代码,从而产生新的问题。
第三,用 Kotlin 编写代码比 Java 更友好、更快捷。Kotlin 吸收了众多编程语言的精髓,它的语法不像 Java 那么复杂,而且允许开发者在不使用冗余类的情况下定义函数和静态对象,这会让代码更容易阅读和调试。
随便打开一个招聘网站,看看大厂的 Android 招聘需求,基本都有“要求熟悉 Kotlin”或“熟悉 Kotlin 语言者优先”
文章图片
有的公司目前把 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代码侧的。
如何学
这份谷歌开源的《 史上最详Android版kotlin协程入门进阶实战指南》,希望可以帮助大家用最短时间学习 Kotlin携程。教程通俗易懂,实例丰富,既有基础知识,也有进阶技能,能够帮助读者快速入门进阶,是你学习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
文章图片
文末
【官方回答来了!Java 和 Kotlin 哪个是未来(你想知道的都在这里)】文章篇幅有限,需要完整版《史上最详Android版kotlin协程入门进阶实战指南》的朋友,可以点击这里免费领取!