【转】Kotlin 新版来了,支持跨平台!

做者:Tamic
原文连接:juejin.im/post/5cd8f9…编程

kotlin

谷歌在今年的 I/O 大会上宣布,Kotlin 编程语言如今是 Android 应用程序开发人员的首选语言(谷歌宣布 Kotlin 成为安卓开发首选)。 还有一个好消息, Kotlin 1.3.30 正式发布,作了对apple的支持。离上次发布1.3 时间过去半年。本次的该版本主要覆盖 1.3 版本的问题修复和工具完善。版本更新的主要范围为 Kotlin/Native、KAPT 的性能优化以及对 IntelliJ IDEA 的支持优化。 咱们来回顾下 1.3的 新特性 稳定的协程 Kotlin/Native Beta 多平台项目和工具 用于 Kotlin/Native 和多平台的工具Ktor 1.0 Beta数组

本次版本带来的牛逼特性主要对1.3完善,而且作了工具上的支持。性能优化

KAPT 支持注解处理器增量编译

KAPT 已经支持注解处理器增量编译,该特性仍处灰度实验阶段,你能够经过在gradle.properties中添加如下配置来启用它: kapt.incremental.apt=true 须要指出的是,在现有版本中引入任何非增量编译的注解处理器或者依赖的变化(截止目前,包括内部声明的修改)都会致使该模块的注解处理过程退化为非增量模式。 KAPT: 其余提高 引入了两个配置来提高编译性能。其一是使用 Gradle workers: 这个版本也对它作了优化。另外一个是 1.3.20 引入的,开启 Compile Avoidance,就是说依赖若是只有方法体发生变化,那么就跳过注解处理。只有在全部的注解处理器都显式的在注解处理的 classpath 声明的状况下,Compile Avoidance 才会生效。app

无符号数组的扩展方法

从 1.3 开始咱们能够在开发模式下使用无符号数值类型。这个版本咱们对无符号类型以及其数组作了更多的支持: 须要注意的是,咱们以前就能够在无符号数组上使用函数式操做例如 filter 和 map ,这是由于无符号类型的数组其实是实现了 Collection 接口的,例如 UIntArray 实现了 Collection 接口。 不过这样就涉及到了性能问题,由于在 UIntArray 被看成 Collection的实例使用时会额外 建立 一个对象出来。如今好了,全部新增的扩展函数都使用无符号数组类型做为 receiver 以消除额外的对象建立开销。所以不用担忧,如今无符号数组和常规数值类型的数组从使用的角度来说没有什么两样,不会有任何额外的开销了。异步

Kotlin/Native

Kotlin/Native 支持的目标平台有: Windows 32 位(mingw_x86)。除此以外,Windows 和 macOS 用户也能够混合编译 Kotlin/Native 程序到 Linux x86-6四、arm32 以及 Android 和 Raspberry PI 环境上。jvm

Kotlin/Native 对 Apple 平台的支持

对 Apple 平台的支持也有提高。iOS 上未处理的异常信息会被输出到 iOS 崩溃日志当中,iOS 和 macOS 上的异常堆栈(调试模式)也会包含符号信息。 如今也可使用命令行参数 -Xstatic-framework 或者如下 Gradle 脚原本构建静态库: 须要注意的一点,现阶段官方表示拉取和编译这些依赖仍然须要一个 Xcode 工程。编程语言

Kotlin/Native IDE 支持

接下来咱们同步下咱们的 IDE 对 Kotlin/Native 的支持工做的进展。 除 IntelliJ IDEA 以外,咱们也将发布 Kotlin/Native 插件支持 CLion 2019.一、AppCode 2019.1。C interop 描述文件 (.def) 后续也会获得全部 IDE 的支持,尽管目前代码补全功能尚未上线。 对于 CLion and AppCode, 咱们也支持了异常堆栈跳转源码的支持。函数

IntelliJ IDEA 支持

调试功能的提高工具

当你在调试协程代码时,你能够看到有一个单独的异步堆栈 “Async stack trace” 显示挂起时的变量。 当程序在 suspend 函数或者 Lambda(例子的第 13行)中的断点中止时, “Async stack trace” 显示了变量在上一次挂起时的状态(12行)。你能够浏览 suspend 函数在当前协程中从上一个挂起点的所有的堆栈 (第十二、4行)并确认变量的值: 这会帮助你更方便的理解当前协程的运行状态。 在调试 Kotlin 代码时,能够选择 “Kotlin” 模式来查看变量。post

Eclipse IDE 插件更新

Eclipse 插件 0.8.14 主要包含如下更新:Kotlin 1.3.30 编译器支持, 大量的问题修复和总体稳定性的提高。该版本也增长了对 Gradle 工程的实验性质的支持。你能够用 Eclipse Buildship 导入工程,你会发现 Kotlin 会被正常配置。

指定 JVM 版本

若是你的程序运行在 JVM 9, 10, 11, 或者 12 等版本下,你能够设置 jvmTarget到对应的版本了。这个设置会影响编译的 class 文件的字节码版本,但它们不是后向兼容的。相比之下,新目标版本不会有任何字节码优化也不会有任何新特性,期待后续Kotlin继续更新。 写在最后 不管 Google 对Kotlin 赋予什么指望,总而言之,Google提出新的系统和跨平台方案,意味着Andorid 生态已经向不一样领域发力,最近微软的反击也预示者,google的跨端计划已经对微软造成了火力压制,坐等大安卓起飞,移动开发下一春不远了。 于此同时微软也在大力发展本身的.net语言的跨平台,而且也在支持 Pyhon开发语言的各类工具,实际上是在对 Flutter和Kotlin 提出了挑战。 你们如何看待 Kotlin 的将来? 欢迎交流

扫一扫 关注个人公众号 【辉辉代码路】
相关文章
相关标签/搜索