开始迁移到 Kotlin | Kotlin 迁移指南 (中篇)

今年五月份的 Google I/O 上,我们正式向全球宣布 Kotlin-first 的这一重要理念,Kotlin 将成为 Android 开发者的首选语言,十月份举办的 Android Dev Summit 2019 大会上,我们发布了使用 Kotlin API 开发的 Jetpack Compose 开发者预览版。

我们于近期开始连载了关于 Kotlin 迁移指南的系列文章,帮助开发者们顺利迁移并开始使用 Kotlin 构建 Android 应用。本篇是本系列的中篇,我们将为您介绍如何迁移到 Kotlin,以及提供相关的学习资源。您可以点击这里查看上篇我们对 Kotlin 的优势和介绍文章,也请关注接下来关于使用 Kotlin 的常见问题的推送。

谁在用 Kotlin

开发者可能对新的语言有一定程度的保留态度,这也是我们非常清楚的一点。所以当我们宣布将 Kotlin 做为 Android 开发的首选语言时,我们也会确保开发者在尽享 Kotlin 强大功能的同时,也不会遇到兼容性和迁移方面的困扰,这里我们给出一些将您的项目迁移至 Kotlin 的建议和方法。

因为 Kotlin 的这些优势与强大的语言特性,现在在 Google Play 上排名前 1000 位的应用中,有 44% 已经在使用 Kotlin 进行开发。在 2019 年 OSCON 大会上,Kotlin 更是荣获 “年度突破项目” 奖。

除了在技术上使用 Kotlin 语言特性开发了一些方便开发者的库之外,Google 也已经在自己的产品中广泛采用 Kotlin。

不仅如此,我们在九月份的谷歌开发者大会 (GDD) 上也分享了诸多使用 Kotlin 构建的应用 —— 其中包括部分中国开发者的热门应用:



开始做 Kotlin 迁移

一个已经在使用 Java 进行开发的 Android 应用团队该如何快速稳定地转而使用 Kotlin 呢?我们给出的建议是 ”由点及面”,这里包括人和代码两个层面:

人的层面,我们建议团队内部推举出一位 Kotlin “推广大使”,他/她需要做到:

   了解 Kotlin 并成为专家

    制定 Kotlin 开发流程

    参与代码审核,确保 Kotlin 开发流程得到顺利贯彻

    组建公司/团队内部的学习小组

    主动收集内部的问题并与开发者社区反馈探讨

代码层面,也需要循序渐进:

   先使用 Kotlin 编写测试 (这时的工程依然在使用 Java)

    使用 Kotlin 编写新代码

    将现有代码更新为 Kotlin 代码

在将现有代码更新为 Kotlin 代码时,Android Studio 提供了 Java 转 Kotlin 的工具,只需要在菜单中选择 “Code → Convert Java File to Kotlin File” 即可:

△ Java 转 Kotlin 工具

另外,Kotlin 的迁移工作没必要一蹴而就,开发者可以按照自己的进度来逐步进行迁移。一个项目中可以同时包含 .java 和 .kt 文件 (但同一个文件中不可以既有 Java 也有 Kotlin),开发者也可以在 Kotlin 代码中使用任何 Java 库。

△ Android Studio 的 Lint 检查中也可以打开 Kotlin 互操作检查

在 Kotlin 中调用 Java 时,有几点需要注意:

   请将代码标记为 @Nullable 和 @NotNull

   使用属性前缀 (getName(), setName(), isActive())

    避免使用 Kotlin 中的保留关键字 (when, is, 等)

更详细的 Kotlin 互操作指南请查阅 Android 开发者网站:

    Kotlin 互操作指南:

https://developer.android.google.cn/kotlin/interop

最后——如何说服管理层采用 Kotlin?这里我们给出了几个使用 Kotlin 的核心优势以供参考:

   提高团队工作效率,使用 Kotlin 的话,编码的量会减少,对应的维护和测试工作量也会减少。

   提升应用品质,Kotlin 内建的强大功能会帮助开发者更轻松地开发出稳定精彩的应用。

   让团队氛围更融洽。更现代、更强大且拥有强大兼容性的开发语言能让团队内的沟通更为顺畅。

   顺应迁移到 Kotlin 的行业趋势。事实上现在不论是招募方还是求职方,对 Kotlin 技能的需求也已经越来越多。

关于 Kotlin 推广大使和如何说服管理层使用 Kotlin 的更详细内容,请参考我们之前发布的文章《如何在大型应用中添加 Kotlin》。

Kotlin 学习资源

我们为大家准备了丰富的 Kotlin 学习资源,以满足各个阶段开发者的需求。

Udacity 在线 Kotlin 课程,完全免费。从新手营到开发完整应用的课程均有覆盖。

Udacity Kotlin 课程:

https://cn.udacity.com/course/kotlin-bootcamp-for-programmers--ud9011

“重构为 Kotlin” Codelab。这是一套中文 Codelab 课程,一步一步帮助大家亲手将代码重构为 Kotlin。

“重构为 Kotlin” Codelab:

https://developer.android.google.cn/codelabs/java-to-kotlin

“使用 Kotlin 开发 Android 应用” 的官方文档。从互用性到使用场景均有详细的覆盖,另外还提供大量的示例代码。

使用 Kotlin 开发 Android 应用:

https://developer.android.google.cn/kotlin

参加由社区自发组织的 “Kotlin/Everywhere” 系列线下活动,我们欢迎开发者伙伴们面对面交流 Kotlin 的学习和使用。

另外,如果您希望打下扎实的 Kotlin 语法基础的话,我们也建议您使用 Kotlin Koans 进行在线练习。您可以直接在浏览器里做练习,也可以通过插件在 IntelliJ IDEA 或者 Android Studio 里练习。

Kotlin Koans:

https://kotlinlang.org/docs/tutorials/koans.html

我们在近期举办的 Google 开发者大会上也有一个关于迁移到 Kotlin 的演讲,您可以在☟下面☟回顾:


利用 Kotlin 进行 Android 开发_腾讯视频

腾讯视频链接:

https://v.qq.com/x/page/n3014axorwo.html

Bilibili 视频链接:

https://www.bilibili.com/video/av68058669/

请持续关注我们接下来发布的与 Kotlin 迁移指南相关的文章。

如果您对在 Android 开发中使用 Kotlin 有任何疑问或者想法,欢迎在评论区和我们分享。

点击这里即刻使用 Kotlin 打造精彩 Android 应用

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 206,214评论 6 481
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 88,307评论 2 382
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 152,543评论 0 341
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 55,221评论 1 279
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 64,224评论 5 371
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,007评论 1 284
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 38,313评论 3 399
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,956评论 0 259
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 43,441评论 1 300
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,925评论 2 323
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,018评论 1 333
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,685评论 4 322
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 39,234评论 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,240评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,464评论 1 261
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 45,467评论 2 352
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,762评论 2 345

推荐阅读更多精彩内容