网易云音乐的 Kotlin 乐章 | Android 开发者故事

网易云音乐的 Kotlin 乐章 | Android 开发者故事

"音乐是灵魂之间的美好交流,是带着情绪的艺术品。网易云音乐要做的,就是帮助用户发现和分享好音乐,用音乐连接用户和音乐人,让用户去感受音乐人想表达的情绪,让更多的人用音乐取暖、发光、获得力量。"

—— 郭元,网易云音乐产品经理

网易云音乐是网易旗下一款专注于发现和分享的音乐产品,依托专业音乐人、DJ、好友推荐及社区功能,为用户打造全新的音乐生活。目前,网易云音乐用户数已超过 8 亿,曲库数超 4,000 万 (近期更新数据),入驻原创音乐人超 20 万,是中国最活跃的音乐社区和中国最大的原创音乐平台。

△ 用网易云音乐和好友分享音乐

△ 用网易云音乐和好友分享音乐

Android 客户端开发团队 2019 年 8 月引入 Kotlin 之后,很快就发现学习 Kotlin 是一件比较轻松的事情: 刚开始的一段时间,经常可以在团队成员的周报中看到对 Kotlin 特性的讨论,团队中也不时会有同事撰写 Kotlin 的学习总结文章并发出来分享。大家基本都可以很快上手开发。而且通过 Kotlin 官方网站、Github 上 Kotlin 项目中的文档,以及 Android Studio 提供的将 Kotlin 代码反编译为 Java 代码的功能,都可以帮助团队成员们更加深入地了解 Kotlin 语言。

"Kotlin 作为 Android 开发的新语言新技术,集成了很多其它语言中的先进设计思想。与 Java 代码兼容和互相调用的特性,也极大地减少了我们在内部推广 Kotlin 的阻力。"

—— 贾斌,网易云音乐资深 Android 开发工程师

目前在网易云音乐的 Android 工程中,Kotlin 文件比例大约占 23%,而且新增的功能大部分都是使用 Kotlin 进行编写。团队也同时引入了 KTX 和协程等库来提高开发效率,让工程师更专注于功能本身的实现。

使用 Kotlin 带来的第一个直观好处是简洁。团队自己有做过统计:

"相比 Java 平均每个文件有 138 行代码,Kotlin 平均每个文件只有 82 行代码,代码量平均减少了 40%,使用 Kotlin 要更加简洁、高效。"

—— 展智泉,网易云音乐高级 Android 开发工程师, 网易云音乐 Kotlin 布道者

Kotlin 协程提供了非常方便的线程切换功能,而且通过引入结构化并发机制,使得对异步任务的追踪和取消变得非常简单。协程还可以与 ViewModel 结合使用,利用 viewModelScope,可以让异步任务和 ViewModel 的生命周期保持一致,有助于防止泄漏。

△ 颇受欢迎的 Kotlin 协程

△ 颇受欢迎的 Kotlin 协程

团队统计到的线上崩溃中出现的 NPE 几乎全都发生在 Java 代码中,在 Kotlin 代码中出现的则非常少。

更简洁、更高效、更稳定、更轻松,这就是网易云音乐的 Kotlin 乐章。用户们在这个音乐平台上找到惊喜,而开发者则在新技术的推动下找到了持续探索的新方向。

您的作品中有多少用到了 Kotlin 呢?欢迎在下方评论区和大家分享。

版权声明

禁止一切形式的转载-禁止商用-禁止衍生 申请授权

脉脉不得语
脉脉不得语
Zhengzhou Website
Android Developer | https://androiddevtools.cn and https://androidweekly.io Funder | GDG Zhengzhou Funder & Ex Organizer | http://Toast.show(∞) Podcast Host

你已经成功订阅到 Android 开发技术周报
太棒了!接下来,完成检验以获得全部访问权限 Android 开发技术周报
欢迎回来!你已经成功登录了。
Unable to sign you in. Please try again.
成功!您的帐户已完全激活,您现在可以访问所有内容。
Error! Stripe checkout failed.
Success! Your billing info is updated.
Error! Billing info update failed.
🍗