NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

Kotlin 1.3.30 改进汇总

  • 2019-05-11
  • 本文字数:1952 字

    阅读完需:约 6 分钟

Kotlin 1.3.30改进汇总

JetBrains 不久前发布了 Kotlin 1.3.30。此版本主要针对 Kotlin 1.3 修复 bug 并更新功能。Kotlin 1.3.30 改进了 Kotlin/Native 和 KAPT,支持更多对无符号类型和数组的操作,并改进了 IntelliJ IDEA 的调试功能,等等。


Kotlin/Native 现在支持 Windows 32 位目标(mingw_x86)。此外,macOS 和 Windows 用户可以将 Kotlin/Native 程序交叉编译到 Linux x86-64、arm32、Android 和树莓派等设备上。


Kotlin/Native 还为苹果平台带来了一系列改进。针对异常处理,开发者可以在 iOS 崩溃日志中找到未处理的异常,新版的异常回溯功能在调试模式下还包含 iOS 和 macOS 上的符号集。


苹果开发者还可以使用-Xstatic-framework命令行参数生成静态框架,或者为跨平台项目生成以下Gradle脚本:kotlin {    macosX64 {        binaries {            framework {                isStatic = true            }        }    }}
复制代码


苹果开发者还能用到一项实验性功能,其使用 Gradle 插件提供与CocoaPods的集成。此功能可将 Kotlin/Native 项目转换为.podfile 依赖项,可将其包含在 Podfile 中。这样以来,开发者就可以获得与 XCode 的 Swift pod 或 Objective-C pod 相同的体验。此外还可以将 CocoaPods 依赖项导入 Kotlin/Native 项目。提供该功能的 gradle 插件负责处理将框架导入 Kotlin/Native 项目的所有必要配置。


// Apply plugins.plugins {    id("org.jetbrains.kotlin.multiplatform") version "1.3.30"    /// the new plugin for CocoaPods support    id("org.jetbrains.kotlin.native.cocoapods") version "1.3.30"}
// CocoaPods requires the podspec to have a version.version = "1.0"
kotlin { cocoapods { summary = "a Kotlin/Native module" homepage = "homepage"
pod("AFNetworking", "~> 3.2.0") }}
复制代码


在已有 Xcode 项目中导入 Kotlin/Native 模块需要执行以下步骤:


  • 安装 CocoaPods

  • 配置 gradle 项目:应用 org.jetbrains.kotlin.native.cocoapods 插件,添加并配置目标,并指定所需的 podspec 字段

  • 运行 podspec 任务,生成上文描述的 podspec 文件。

  • 在 Xcode 项目的 Podfile 中添加对生成的 podspec 的引用


target 'my-ios-app' do    pod 'my_kotlin_library', :path => 'path/to/my-kotlin-library'end
复制代码


  • 为 Xcode 项目运行 pod install。


之前通过 KAPT 编译插件在 Kotlin 中支持的注释处理器(JSR 269)也得到了改进。KAPT 增加了一项实验性功能,可以实现增量注释处理器;开发者若想尝试该功能,可在 gradle.properties 中添加下面这行代码:


kapt.incremental.apt=true
复制代码


KAPT 的另一个有趣的特性是 Compile Avoidance(避免编译),它只在更改方法主体时跳过注释处理。只有在注释处理类路径中显式声明所有 KAPT 依赖项时才可以避免编译。要启用避免编译,需在 gradle.properties 中添加下面这行代码:


kapt.include.compile.classpath=false
复制代码


Kotlin 1.3.30 支持更多对无符号类型和无符号类型数组的操作:


fun main() {    val u1 = 2_147_483_649u    val u2 = 4_000_000_000u    println(u1.toDouble())    println(minOf(u1, u2))
val array: UIntArray = uintArrayOf(u1, u2) println(array.max()) println(array.all { it > Int.MAX_VALUE.toUInt() })}
复制代码


由于无符号数组实现了 Collection(例如用于 UIntArray 的 Collection),开发者现在可以使用 filter 和 map 等操作。


IntelliJ IDEA 对 Kotlin 1.3.30 的支持也得到了改进。现在可以更容易地调试协程;新增独立的“异步堆栈跟踪”功能显示暂停时存储的变量。


IntelliJ IDEA 调试功能的另一项改进是“Kotlin”模式,它使开发者能够通过 Kotlin 名称而不是辅助 JVM 名称来查看变量:



(图片来自 https://blog.jetbrains.com


IntelliJ IDEA 的其它重要功能和错误修复包括:


  • 新增用来替换 isEmpty/isNotEmpty 方法否定语句的意图。例如,!isEmpty() -> isNotEmpty(),!isNotEmpty() -> isEmpty()

  • 新增用.size 替换 Collection.count()的语法检查和快速修正。例如,listOf(1, 2).count() -> listOf(1, 2).size

  • 新增用 Kotlin 的 forEach 替换 Java 8 的 Map.forEach 的语法检查

  • 新增有关重复 requireNotNull 和 checkNotNull 用法的警告

  • 修复不正确的 KT elvis 表达式调试器评估

  • 支持多行 TODO 评论。


要查看完整的更新列表可查阅更新日志。若要更新到 Kotlin 1.3.30,IntelliJ IDEA 和 Android Studio 用户应进入工具> Kotlin>配置 Kotlin 插件更新,然后单击“立即检查更新”;Eclipse 用户应该使用Marketplace安装插件,或者从 maven 获取更新;Gradle 和 npm 用户应使用 1.3.30 作为编译器和标准库的版本号。其它文档点此查看。


查看英文原文Kotlin 1.3.30 Brings Kotlin/Native and KAPT Improvements, and More


2019-05-11 08:005773

评论 1 条评论

发布
用户头像
kotlin天下第一!
2019-05-11 13:39
回复
没有更多了
发现更多内容

阿里员工感慨:码农们过去暴富有多轻松,现在赚钱就有多辛苦!

Java 程序员 后端

35w奖金池,腾讯云TDSQL精英挑战赛正式开赛!

科技热闻

阿里三面:CAP和BASE理论了解么?可以结合实际案例说下?

Java 程序员 后端

技术为本,中科柏诚致力于打造高效供应链金融平台

联营汇聚

阿里大师推荐的这份Java开发必读书单,让我成功在寒冬中站稳脚步

Java 程序员 后端

阿里巴巴内部涨薪必备的“王者级Dubbo实战笔记”,不啃透不下班

Java 程序员 后端

阿里技术3面+HR面,奋战两个月,终斩获offer定级阿里P6+

Java 程序员 后端

阿里面试官:你好,谈谈对Synchronized的理解?(一

Java 程序员 后端

阿里又一个“逆天”容器框架!这本Kubernetes进阶手册简直太全了

Java 程序员 后端

阿里大牛看了也要膜拜的大话代码架构(项目实战版)终于出来了

Java 程序员 后端

阿里蚂蚁金服超全126道面试题,都会的话,你也能去面阿里了

Java 程序员 后端

阿里面试官:HashMap 为什么是线程不安全的?

Java 程序员 后端

阿里五面(4轮技术+HR)成功逆袭,面经分享

Java 程序员 后端

阿里腾讯微软拥抱低代码,程序员们要“失业”?

Java 程序员 后端

用JavaScript访问SAP云平台上的服务遇到跨域问题该怎么办

Jerry Wang

JavaScript SAP 11月日更 SAP微信集成

阿里亿级长连网关的云原生演进之路

Java 程序员 后端

阿里巴巴蚂蚁金服Java面试经历包含答案解析

Java 程序员 后端

阿里架构师剖析程序运行原理,程序是如何运行又是如何崩溃的?

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正(1)

Java 程序员 后端

阿里面试官整理出面试必问:java面试核心知识原理+框架笔记

Java 程序员 后端

阿里二面被问16道 volatile 问题,玩命补充jvm、多线程、高并发

Java 程序员 后端

一周信创舆情观察(11.1~11.7)

统小信uos

阿里内部绝密Java面试笔记(珠峰版),冒着被开的风险免费分享

Java 程序员 后端

阿里程序员:入职才两个月,我决定离职

Java 程序员 后端

阿里老人吐槽:新人水平差不服管不加班!汇报经理让他无法转正

Java 程序员 后端

Flink CDC 实时数据同步详细解析

五分钟学大数据

flink 11月日更

阿里内部疯传的分布式架构手册,轻松吊打小日子过的不错的面试官

Java 程序员 后端

助力数字孪生,TDengine在叁零肆零仿真平台中的实践

TDengine

数据库 tdengine 后端

阿里技术官亲手总结Part 10个知识点!主动分享!收藏必备!

Java 程序员 后端

阿里技术总监纯手打的内部手册《MySQL笔记》真是太硬核了

Java 程序员 后端

这几个动态规划的问题,面试官就爱问

华为云开发者联盟

数组 动态规划 序列 子数组 公共子串

Kotlin 1.3.30改进汇总_大前端_Diogo Carleto_InfoQ精选文章