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

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

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

—— Hary Zhang,Team Lead

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

△ K 歌特效一键切换

△ K 歌特效一键切换

△ 对歌声有信心?来场直播让自己人气飙升吧

△ 对歌声有信心?来场直播让自己人气飙升吧

和朋友们 K 歌,玩法总是随心所欲的,以 K 歌为核心互动的 WeSing 自然也需要随时跟上用户们的口味。Kotlin 正在帮助团队做到这一点。

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

—— Worm Chen, Software Engineer

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

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

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

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

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

—— Codd Zhang, Software Engineer

△ 团队内部的 Kotlin 技术论坛

△ 团队内部的 Kotlin 技术论坛

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

△ Convert Java File to Kotlin File 功能

△ Convert Java File to Kotlin File 功能

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

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

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

版权声明

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

脉脉不得语
脉脉不得语
Zhengzhou Website
Android Developer | https://androiddevtools.cn and https://androidweekly.io WebMaster | 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.