查看原文
其他

WeSing 用 Kotlin 和歌声连接用户 | Android 开发者故事

Android 谷歌开发者 2021-08-05
  • Bilibili 视频链接
    https://www.bilibili.com/video/BV1vt4y1Y7KB/
  • 腾讯视频链接
    https://v.qq.com/x/page/b32101kchr1.html

"WeSing 这个名字,本身就包含着我们的愿景——大家一起来唱歌吧!就像好友们总是相约去 K 歌一样,WeSing 希望通过歌声将更多的人聚集到一起。"
—— Hary Zhang,Team Lead


通过应用中丰富的曲库,用户们得以在 WeSing 里随时随地唱自己喜欢的歌,方便切换的滤镜特效更能让自己仿佛身处量身定制的歌房一样。WeSing 团队更是为应用添加了直播、竞技之类的玩法,让用户通过歌声结交更多的朋友,也因此收获了大量的人气: 目前在 Google Play 上的下载量已经超过 5,000 万次。

△ K 歌特效一键切换

△ 对歌声有信心?来场直播让自己人气飙升吧
和朋友们 K 歌,玩法总是随心所欲的,以 K 歌为核心互动的 WeSing 自然也需要随时跟上用户们的口味。Kotlin 正在帮助团队做到这一点。


"Kotlin 凭借其高效、现代的语法,实现相同功能所写的代码行数平均能比 Java 少接近 30%,涉及到单例、数据类和 lambda 表达式的时候,甚至能减少 50% 以上的代码。"
—— Worm Chen, Software Engineer

目前 WeSing 核心的业务场景,包括录制、歌房和直播都用到了 Kotlin。更棒的是,Kotlin 对效率的提升也不仅仅限于 WeSing 这一个应用: 可跨产品灵活复用的 MV 录制组件里面 Kotlin 的比例也在逐渐升高。

△ MV 录制组件已经在其他产品里集成使用

而在应用稳定性方面,Kotlin 的空安全性也是团队颇为倚重的。只需要在 Java 代码的参数中加入适当的空安全注解,当其赋值给 Kotlin 的非空类型时就不会有编译错误。在实际使用中,Kotlin 确实显著地减少了 WeSing 应用的空指针异常数量,提高了应用稳定性。

"我们内部有专门的讲座和技术论坛去做 Kotlin 知识的分享和讨论,对 Java 很熟悉的开发者用两三天熟悉一下基本语法就可以上手了。"
—— Codd Zhang, Software Engineer

△ 团队内部的 Kotlin 技术论坛

维持 Kotlin 使用的积极性对 WeSing 团队来说并不困难。除了学习门槛不高之外,强大的工具支持也是一大助力。比如 Android Studio 提供了很方便的 Java 转 Kotlin 操作,如果需要维护一个 Java 代码且修改比较多的话,团队会让开发者直接把代码先转成 Kotlin,然后维护这份 Kotlin 代码。这些都进一步提升了大家使用 Kotlin 的积极性。

△ Convert Java File to Kotlin File 功能

极低的上手门槛、强大的现代化语法以及工具支持、丰富且稳健的互操作性和空安全性,这些都使得 Kotlin 在 WeSing 团队内很快普及开来。目前 WeSing 应用整体已经有大约 30% 的代码是使用 Kotlin 编写,这个比例还在持续增加。

Kotlin 正在助力 WeSing 打造欢唱的盛宴,我们也期待着您的作品也用 Kotlin 谱写出精彩的乐章!

您手上的项目中有多少在使用 Kotlin?欢迎在评论区和我们分享使用 Kotlin 的感想。



推荐阅读






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



    您可能也对以下帖子感兴趣

    文章有问题?点此查看未经处理的缓存