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

2020 年 11 月 26 日 谷歌开发者

  • 腾讯视频链接
    https://v.qq.com/x/page/z3206z0iutx.html
  • Bilibili 视频链接
    https://www.bilibili.com/video/BV1hy4y167Nb/

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

网易云音乐是网易旗下一款专注于发现和分享的音乐产品,依托专业音乐人、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 协程

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

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

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



推荐阅读






  点击屏末  | 查看更多开发者精彩故事



登录查看更多
0

相关内容

Kotlin 是一种运行于 Java 虚拟机上的静态类型编程语言。
【实用书】Python编程,140页pdf
专知会员服务
41+阅读 · 2020年8月20日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
移动开发的下半场,iOS开发者应该学什么?
前端之巅
3+阅读 · 2019年4月17日
软件推荐 | Flutter 开发的精美时间轴应用
开源中国
6+阅读 · 2019年1月4日
Python 杠上 Java、C/C++,赢面有几成?
CSDN
6+阅读 · 2018年4月12日
福利一丨20本技术好书相送,请查收
InfoQ
7+阅读 · 2017年10月24日
Python 书单:从入门到……
Linux中国
39+阅读 · 2017年8月6日
Directed Acyclic Graph Neural Networks
Arxiv
0+阅读 · 2021年2月2日
A Comprehensive Survey on Graph Neural Networks
Arxiv
13+阅读 · 2019年3月10日
Arxiv
26+阅读 · 2018年2月27日
Arxiv
5+阅读 · 2015年9月14日
VIP会员
相关VIP内容
【实用书】Python编程,140页pdf
专知会员服务
41+阅读 · 2020年8月20日
【2020新书】高级Python编程,620页pdf
专知会员服务
235+阅读 · 2020年7月31日
【2020新书】现代C++初学者指南,301页pdf
专知会员服务
159+阅读 · 2020年7月24日
一份简明有趣的Python学习教程,42页pdf
专知会员服务
76+阅读 · 2020年6月22日
【Manning新书】现代Java实战,592页pdf
专知会员服务
99+阅读 · 2020年5月22日
【书籍推荐】简洁的Python编程(Clean Python),附274页pdf
专知会员服务
179+阅读 · 2020年1月1日
【书籍】深度学习框架:PyTorch入门与实践(附代码)
专知会员服务
163+阅读 · 2019年10月28日
Top
微信扫码咨询专知VIP会员