Duolingo是如何将其Android应用程序迁移到Kotlin的

科技2020-07-30 08:15:31
导读 在过去的两年中,Duolingo无缝地将其Java Android应用程序迁移到100% Kotlin。在它带来的主要好处中,开发人员提高了他们的工作效率和

在过去的两年中,Duolingo无缝地将其Java Android应用程序迁移到100% Kotlin。在它带来的主要好处中,开发人员提高了他们的工作效率和幸福感,而Duolingo应用程序几乎成为免费的空指针异常(NPE)。InfoQ已经与Duolingo Android和web开发负责人Chaidarun进行了交流,以了解他们的经验。

自从谷歌芬兰湾的科特林其首选语言为Android开发,JetBrains的语言已经吸引越来越多的开发商的利益由于其现代特性集。Duolingo,制造商成功的语言学习平台,决定搬到芬兰湾的科特林在2018年为Android开发提高生产率,稳定,和开发人员的幸福。

正如Duolingo Android和web开发负责人Art Chaidarun解释的那样,向Kotlin的转变始于每个开发人员将一些Java代码移植到Kotlin,并将指导角色分配给更有经验的Kotlin开发人员。特别值得一提的是pull request工作流,Duolingo工程师定义了该工作流,以便尽可能轻松地管理到Kotlin的转换。具体来说,对于每个转换后的源文件,开发人员需要生成至少三个pull请求:一个包含IntelliJ自动转换的结果;包含对自动转换所引入的任何编译错误的修复的第二个PR;第三个PR包含使代码更符合习惯的更改。

根据Chaidarun的说法,转换到Kotlin后,行数减少了约30%,峰值为90%。最终,Duolingo应用程序的稳定性得到了极大的改善,大多数nullpointerexception和illegalargumentexception都来自第三方依赖项,它们不为Kotlin编译器采用可为空的注释。InfoQ与Chaidarun进行了交谈,了解了他们的更多经验。

InfoQ:将一个应用程序迁移到另一种语言需要付出巨大的努力。你能找出促成这一努力成功的关键做法吗?

Chaidarun:唯一最大的因素是语言的选择:Kotlin与Java非常相似,这意味着开发人员很容易学习,IDE也很容易从Java自动转换过来。例如,在将Java转换成Scala或将Objective-C转换成Swift时,情况就不太一样了。同样重要的是,我们从一开始就在Java和Kotlin之间使用了工具平价(格式化器和l),这加强了一致性并降低了切换成本。

免责声明:本文由用户上传,如有侵权请联系删除!