博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Kotlin 初尝之项目实践总结
阅读量:6192 次
发布时间:2019-06-21

本文共 2455 字,大约阅读时间需要 8 分钟。

前言

记不清什么时候翻 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,官方已经提供很详细的,简单说下,分为两步:

  1. 升级 Android Studio 到 3.0 版本以上
  2. 添加 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 替代 switchif else

    AppConfig.get().apply {    when(EnvPreferences.getEnv(app)) {          ONLINE -> {              ...          }          PREPARE -> {              ...          }          DAILY -> {              ...          }      }  }复制代码

投入成本

整个项目重构大概花了两周左右(包括学习 Kotlin 的时间),过程还是很顺利的,且已成功上线了一个版本。

感想

因为一直都是使用 Java 开发,使用 Kotlin 之后,感觉就像打开了新世界,原来写代码可以这么爽,这么酷!

这里也推荐大家看下这个短视频,3分钟左右,是关于国外开发者如何看待 Kotlin,里面还有 Android 大牛 Jake Wharton 哦

不过由于刚接触不久,接下来会去深入了解一下 Kotlin 一些高级特性和扩展库,比如:

  • 更好用的动态代理
  • 真泛性
  • kotlinx.coroutines,一个更好用的可替代线程的库
  • android-ktx,好用的 Android 扩展库
  • ...

最后说下期待,因为得到了 Google 的加持,目测很快 Kotlin 会成为 Android 主流的开发语言,希望在 10 月份的 Kotlin 全球开发者大会,可以有更多的大招可以释放出来。

Kotlin 实在太好用了,最后,还是抽象总结一下,使用 Kotlin 可以为你带来哪些好处:

  1. 代码简洁,
  2. 兼容 Java,双语混写
  3. 函数式编程,各种语法糖
  4. 提升编程效率

最后的最后,请允许我借用一张图来表达(图侵删):

关联阅读

关于我

转载地址:http://ztrda.baihongyu.com/

你可能感兴趣的文章
WineQQ2012 最新下载 (转)
查看>>
python内置异常
查看>>
实测windows server 2008R2 域控迁移到 windows server 2012域控
查看>>
excel数据附件的使用方法及应用
查看>>
我的友情链接
查看>>
MindManager新手入门教程
查看>>
linux中yum命令详解
查看>>
ES权威指南[官方文档学习笔记]-61 Empty Search
查看>>
关于Java性能的9个谬论
查看>>
支付宝向他付款 代码生成器
查看>>
Sendmail在企业网中的应用
查看>>
java实现二维码的编码与解码
查看>>
装饰设计模式
查看>>
whois
查看>>
git 常用命令
查看>>
TCP/IP详解学习笔记(2)-数据链路层
查看>>
Linux下查看jdk版本切换
查看>>
吾日三省吾身1
查看>>
git 小记
查看>>
20150905-Linux上的任务计划
查看>>