SmartNews 通过 Kotlin 将代码行数减少 20% 并提升团队士气

SmartNews 通过分享来自不同新闻来源的及时新闻,帮助数百万人每天探索他们的世界。该公司于 2012 年在日本成立,目前在全球拥有超过 5000 万次下载。

2019 年 6 月,团队发现 Android 开发正朝着 Kotlin 优先的方向发展,并决定亲自开始测试 Kotlin。他们希望利用 Kotlin 优先的 Jetpack 库,减少需要维护的代码量,并从 Kotlin 表达性强、易于理解的语法中受益。

他们做了什么

SmartNews 的团队精通 Java,因此他们开始用 Kotlin 编写代码相当容易。由于 Kotlin 与 Java 100% 互操作,他们可以轻松地在现有代码库中,用 Kotlin 编写新功能,例如天气雷达和多角度新闻。他们使用协程来管理专利天气雷达功能中的图像下载和缓存。协程调度器为管理任务提供了有用的抽象,这帮助 SmartNews 工程师避免了管理原始线程带来的陷阱。

团队还重构了一些 Java 代码,并对 Kotlin 的空安全特性印象深刻。Kotlin 识别可变性、可空性和初始化功能的语法帮助团队提早发现错误,并将代码更改的审查时间减少了 10%。通过使用 Kotlin 简洁高效的语法,他们还提高了代码库的可读性,这使得随着公司不断发展,他们的代码更容易维护。

成果

用 Kotlin 编写代码提高了从实现到发布的整体生产力。他们看到最大的改进是,用 Kotlin 编写代码将转换后的代码行数减少了 20%。目前 SmartNews 应用大约一半是用 Kotlin 编写的,开发团队计划用 Kotlin 编写所有新功能,并重构一些现有代码,以继续提高代码的可维护性。

在开发团队实施 Kotlin 并减少样板代码时,他们注意到团队士气有所提升。团队很高兴能够以更高效的方式表达他们的想法,并使他们的代码在未来更具可读性。SmartNews 工程经理 Hideo Ohashi 注意到 Kotlin 帮助了他们的工程招聘工作“候选人最常问的问题是‘你们使用 Kotlin 吗?你们使用它的频率如何?’现在看来,许多工程师都对迁移到 Kotlin 感兴趣,并希望支持它。” 尽管团队采用 Kotlin 的主要原因并非团队士气和招聘方面的这些改进,但这些积极的变化将帮助公司在这个竞争激烈的行业中继续发展。

开始

了解更多关于使用 Kotlin 开发 Android 应用的信息。