Kotlin 初尝之项目实践总结
Posted Android机动车
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Kotlin 初尝之项目实践总结相关的知识,希望对你有一定的参考价值。
前言
记不清什么时候翻 android 官方文档的时候,发现提供的示例代码已经变成了 Kotlin…
逛全球最大同性交友网站( GitHub )也发现越来越多的开源库都是基于 Kotlin 语言…
关于 Kotlin 的相关书籍和资料也开始丰富起来了…
Kotlin,一个神奇的网站…呸…是一个面向 JVM 的静态开发语言,16年推出 1.0 Release 版本,17年被 Google 宣布为 Android 官方开发语言,以及即将到来的 18 年全球开发者大会…
以上这些种种迹象让我从之前的观望态度,开始对 Kotlin 再一次充满了好奇以及跃跃欲试 。
于是,最近在时间允许的情况下,尝试着把项目中某个模块通过 Kotlin 去重写,结果和吃了炫迈一样,发现根本停不下来,直接把整个工程的 Java 代码全部重写成了 Kotlin,最后连 Gradle 的构建脚本语言也被切换到了 Kotlin DSL 上。
嗯,Kotlin 果然有毒…
关于项目
因为这个项目的业务功能不是很复杂,本次实践就直接把项目中的 Java 代码全部用 Kotlin 重写了一遍,我们看下主要包含的功能模块:
登录功能
消息中心
统一容器(H5、Weex 容器)
社交分享功能
扫码功能
可以看到该 App 偏向于端容器,主要业务都是使用的 H5 和 Weex 页面所写,而Natvie 上的业务不是很复杂。
需要说明的一点是,本次重写不是直接通过工具对原有 Java 类文件进行转换到 Kotlin,虽然 Kotlin 插件提供了这样的功能,但是不推荐大家去这样操作,因为实际转换的过程当中,它并不能很好发挥 Kotlin 真正的强大之处,比如转换之后, 你可能会看到大量的 ?
和 !!
符号, 这是由于 Kotlin 空安全的特性引起,还有一个就是你在重写的时候,也相当于去重构了一遍你之前的代码或者别人的代码,可以很好的帮助你去理解和优化之前的代码逻辑,也会删除了很多无用类和代码,亲测非常有用,而且投入的时间也不多。
实践总结
关于如何在原有的 Android 项目中使用 Kotlin,官方已经提供很详细的指导文档,简单说下,分为两步:
升级 Android Studio 到 3.0 版本以上
添加 Kotlin Plugin 插件和 Kotlin 依赖库
重写前后对比
关于包大小,因为需要引入 Kotlin 的依赖库,所以增加大概 60 KB 的大小,按照现在 Apk 的体量,几乎可以忽略不计。
代码量减少 30%
其他的好处
代码简洁
//一行代码搞定 POJO 类,同时具有 `getter, settting, toString ` 等方法
data class User(val name: String,
val sex: String,
val email: String,
val age: String)
扩展函数替代了很多 Utils 类
告别 findViewById,比 ButterKnife 更好用
import kotlinx.android.synthetic.main.view_toolbar.*
open class WebContainerActivity : BaseActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_web_page)
toolbar.title = "I am title "
}
}
作用域函数让你爱不释手
强大的表达式语句,使用
when
替代switch
和if else
AppConfig.get().apply {
when(EnvPreferences.getEnv(app)) {
ONLINE -> {
...
}
PREPARE -> {
...
}
DAILY -> {
...
}
}
}
投入成本
整个项目重构大概花了两周左右(包括学习 Kotlin 的时间),过程还是很顺利的,且已成功上线了一个版本。
感想
因为一直都是使用 Java 开发,使用 Kotlin 之后,感觉就像打开了新世界,原来写代码可以这么爽,这么酷!
这里也推荐大家看下这个短视频,3分钟左右,是关于国外开发者如何看待 Kotlin,里面还有 Android 大牛 Jake Wharton 哦
Android Developer Story: Kotlin + Android increasing developer happiness and productivity
不过由于刚接触不久,接下来会去深入了解一下 Kotlin 一些高级特性和扩展库,比如:
更好用的动态代理
真泛性
kotlinx.coroutines,一个更好用的可替代线程的库
android-ktx,好用的 Android 扩展库
…
最后说下期待,因为得到了 Google 的加持,目测很快 Kotlin 会成为 Android 主流的开发语言,希望在 10 月份的 Kotlin 全球开发者大会,可以有更多的大招可以释放出来。
Kotlin 实在太好用了,最后,还是抽象总结一下,使用 Kotlin 可以为你带来哪些好处:
代码简洁,
兼容 Java,双语混写
函数式编程,各种语法糖
提升编程效率
最后的最后,请允许我借用一张图来表达(图侵删):
关联阅读
Gradle指南之从Groovy迁移到Kotlin
点击阅读原文即可获取
以上是关于Kotlin 初尝之项目实践总结的主要内容,如果未能解决你的问题,请参考以下文章