网易云音乐的 Kotlin 乐章 | Android 开发者故事
腾讯视频链接
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 呢?欢迎在下方评论区和大家分享。
推荐阅读
点击屏末 | 阅读原文 | 查看更多开发者精彩故事
网易云音乐的 Kotlin 乐章 | Android 开发者故事相关推荐
- android 网易云音乐上滑动画,Android 仿网易云音乐 音轨跳动效果
网易云音乐的Loading效果,大家应该也比较熟悉了,效果是一个红色音轨不断跳动的效果,一般用于Loading等待时填充使用.本篇来自定义这个效果. Android 仿网易云音乐 音轨跳动View.g ...
- android 换肤 视频,网易云音乐4.0版体验:自定义换肤和短视频来了
原标题:网易云音乐4.0版体验:自定义换肤和短视频来了 日前,网易云音乐的iOS和Android更新到了4.0版本,对于期待更多创新功能的忠实粉来说,这着实是一个好消息.在新版本到来之后,不少人开始发 ...
- 实现一个网易云音乐的 BottomSheetDialog
作者:林冠宏 / 指尖下的幽灵 掘金:https://juejin.im/user/587f0dfe128fe100570ce2d8 博客:http://www.cnblogs.com/linguan ...
- debian之网易云音乐的安装
前提 众所周知网易云音乐是windows和android.ios上很火的一款音乐播放器,众多linux用户是不是为linux无法使用网易云而苦恼呢,不比灰心,网易云官网未deepin和ubuntu两款 ...
- 网易云音乐:从刷屏 IP 到音乐生活王国
自 2013 年上线起,网易云音乐就将自己定位为音乐社交平台,而非音乐播放器.依托专业音乐人.歌单乐评.社交推荐等特色功能,网易云音乐发展迅速,现已突破了 4 亿用户量.在用户眼中,网易云音乐是一个有 ...
- 付费率、月活增速不敌网易云音乐的腾讯音乐,还有什么故事能说?
5月底,国内领先的在线音乐平台网易云音乐正式递交招股书,于香港寻求上市.8月1日,据港交所文件,网易云音乐已通过港交所上市聆讯,正式向 "全球音乐社区第一股"发起冲击. 更新版招股 ...
- 网易云音乐Android版使用的开源组件
转自:http://www.jianshu.com/p/f31ab96a32f3 网易云音乐Android版从第一版使用到现在,全新的 Material Design 界面,更加清新.简洁.同样也是音 ...
- android 加载动画效果_这效果炸了,网易云音乐“宇宙尘埃”特效
本文作者 作者:Mlx 链接: https://juejin.im/post/6871049441546567688 本文由作者授权发布. 1前言 前段时间,女朋友用网易云音乐的时候看到一个宇宙尘埃特 ...
- [转]网易云音乐Android版使用的开源组件
原文链接 网易云音乐Android版从第一版使用到现在,全新的 Material Design 界面,更加清新.简洁.同样也是音乐播放器开发者,我们确实需要思考,相同的功能,会如何选择.感谢开源,让我 ...
最新文章
- CSS2020聚焦新基建 腾讯发布云原生安全体系 助力客户备战云上“主战场”
- prometheus 插件node_exporter 启动方式
- 前端常用效果(2)带效果的tab切换
- Java函数式编程和Lambda表达式
- input发送a.jax_JAX-RS 2.0:服务器端处理管道
- Redis安装及配置(Linux)
- push推送服务设计
- H5的sessionStorage 和 localStorage
- jQuery动画之显示隐藏动画
- 图片的变形与模糊,是两回事
- 7. 敏捷软件开发框架 - 极限编程XP
- echarts折线图和柱状图结合绘制
- 县级外业调查及举证软件_MapGIS第三次国土调查系列产品
- CLC龍链:致力于打造支付生态系统
- 「译」开发者如何提升和推销自己
- 在worldpress中使用php代码抓取图书馆书籍信息
- 树莓派3B+安装Android 系统
- 用stlstack实现深搜_同心筑共未来,深信服是认真的
- ESP32 DEVKIT V1 资料分享-原理图+引脚图
- 什么是物联网,与传感网之间,有什么区别