SmartNews 通过分享来自各种新闻媒体的及时新闻,帮助数百万人每天探索世界。该公司于 2012 年在日本成立,目前其应用在全球的下载量已超过 5000 万次。
2019 年 6 月,SmartNews 团队注意到 Android 开发正在转向采用“Kotlin 优先”方法,并决定开始自行测试 Kotlin。他们想充分利用 Kotlin 优先的 Jetpack 库,减少必须维护的代码量,并从 Kotlin 更具表达性且易于理解的语法中获益。
策略
SmartNews 团队精通 Java,因此开始使用 Kotlin 编写代码对他们来说很容易。由于 Kotlin 可完全与 Java 互操作,因此他们可以在使用现有代码库的同时,轻松地开始使用 Kotlin 编写新功能,例如 Weather Radar 和 News From All Sides。他们使用协程来管理已获专利的 Weather Radar 功能中的图片下载和缓存。协程调度程序提供了一个实用的抽象函数来管理任务,这可帮助 SmartNews 工程师避免管理原生线程时出现的陷阱。
该团队还重构了部分 Java 代码,Kotlin 的 null 安全功能给他们留下了深刻的印象。Kotlin 用于识别可变性、是否可为 null 和初始化的语法帮助该团队尽早发现了错误,并将审核代码变更的时间缩短了 10%。利用 Kotlin 简洁高效的语法,他们还能够增强其代码库的可读性,从而在公司不断发展壮大的同时让其代码更易于维护。
结果
采用 Kotlin 编写代码后,该团队在从实现到发布的整个流程中的工作效率得到了提升。采用 Kotlin 编写代码后,该团队将转换后的代码行缩减了 20%,这是他们看到的一项最重大的改进。目前,SmartNews 应用中有一半的功能是采用 Kotlin 编写的,开发团队计划用 Kotlin 编写所有新功能,并重构部分现有代码以便继续提高其代码的可维护性。
开发团队在实现 Kotlin 并减少样板代码的过程中发现,团队士气得到了很大提升。团队成员都非常兴奋,因为他们能够更高效地表达自己的想法,同时提高了代码的可读性,更便于日后阅读。SmartNews 的工程经理 Hideo Ohashi 注意到,Kotlin 对工程师招募工作大有裨益。“应聘者最常提问的问题是‘贵公司使用 Kotlin 吗?使用频率是怎样的?’现在,似乎很多工程师都有意迁移到 Kotlin,并希望提供这方面的支持。”尽管团队士气的提高和在招募方面的改进并不是该团队采用 Kotlin 的主要原因,但这些积极的改变将帮助该公司在这个竞争激烈的行业中不断发展壮大。