
5.18是 Google I/O 2017 大会第一日。 Kotlin 成为了 Android 的官方开发语言。谷歌安卓团队今天在 Google I/O 2017 大会 上宣布对 Kotlin 提供 first-class 的支持。
Kotlin历史
值得注意的还有,2013年的Google IO宣布了Android Studio,也就是说 Google和JetBrains有一定年头了。但是Kotlin还是比较年轻,下面是Github上用Kotlin写的项目的数量,和右边其他主流语言比比还是有非常漫长的路要走。

关于 Kotlin,先了解这些
Kotlin 是一个基于 JVM 的新编程语言,用 JetBrains 的话来说是「更现代化、更强大」的语言。
Kotlin 由 JetBrains 在 2010 年开发,2011 年开源了: https://github.com/JetBrains/kotlin 。2016 年发布 1.0 版,2017 年 4 月发布 1.1.2 版。
谷歌安卓团队和 JetBrains 的关系不一般。Android Studio 就是基于 JetBrains 开发的 IntelliJ IDEA 社区版;
谷歌和 JetBrains 将为 Kotlin 成立一个非盈利基金会。Kotlin 语言的开发,还是 JB 为主导。
Kotlin 语言的开发团队,目前大约 40 人。会继续往常那样运作。Andrey Breslav 还是 Kotlin 语言的首席设计师。
JetBrains 对 Kotlin 的愿景是:用同一种语言,桥接多平台的不同应用的端对端开发。包括全栈 Web 应用、Android 和 iOS 客户端、嵌入式/物联网等等。
Kotlin 与 Java 100% 互通,并具备诸多 Java 尚不支持的新特性。
Android Studio 3.0 预览版已支持 Kotlin。下载 AS 3.0 预览版后,打开现有的 Java 文件,在「Code」菜单中选择「Convert Java File to Kotlin File」。AS 会添加 Kotlin 依赖,然后把 Java 代码转成同等功能的 Kotlin 代码。
Kotlin 易于上手,可以逐步引入到现有项目中。这意味着安卓开发者目前现有的技能和技术积累/投资并没有浪费。
Kotlin语言对测试工具的影响
Kotlin最终会被编译成Java bytecode,然后变成APK。如果APP部分或者全部使用Kotlin开发,是否会对现在的测试体系有影响呢?这个是大家做测试时候关心的。以下是质量保障体系里面的几类工具:
静态代码分析工具,比如findbugs, Android Lint, Sonar这类,这些工具的影响是最大的,因为有些是直接和源代码打交道的,但是不用担心,Kotlin的开发工具已经慢慢开始,包括语法检查,各种静态分析也会慢慢抓上来
UI自动化工具,例如Appium, Calabash, Robotium:只要Java一天不死,这些工具总是能用,无论Kotlin怎样,最终还是可以直接和原生Java代码衔接的,以前的Robotium Java用例照样能跑,Appium之类的直接从Uiautomator这种点击View的,更是没有关系。
SDK工具:bugly, LeakCanary等:完全不受到影响,只要是Java的库Kotlin可以无缝连接,这点要表扬下Kotlin的兼容性。
插桩工具:Appetizer, JaCoCo, Emma,插桩工具向APP中添加测量代码来完成任务,JaCoCo/Emma的代码覆盖率和Appetizer的崩溃、性能、Http、卡顿监控等都是这样。Appetizer是直接在Dalvik代码上插桩的,所以和源代码是用什么语言开发的没有关系;JaCoCo是在Gradle中间,对Javac产生的bytecode插桩,也是一样,和源代码没关系,所以继续能用。
APK启动后的工具,包括Proxy工具,Mock工具,弱网模拟:都没事
Kotlin 学习资源
Try Kotlin:http://try.kotlinlang.org/
Getting Started Guide:https://kotlinlang.org/docs/tutorials/getting-started.html