写点什么

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:005950

评论 1 条评论

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

提前锁定!2024云栖大会大数据AI参会攻略来啦

阿里云大数据AI技术

大数据 阿里云 AI 云栖大会

aftercodecs(AE/PR/AME渲染队列插件)

Rose

C4D插件:三维模型四边形网格拓扑插件 Exoside QuadRemesher

Rose

PS插件-模拟真实投影拖尾阴影工具 Shadowify

Rose

如何塑造全方位安全远控,贝锐向日葵安全体系解析

科技热闻

人工智能 | Hugging Face 的应用

测吧(北京)科技有限公司

测试

PingCAP 荣登 2024 Cloud 100 China 榜单第七

先锋IT

PS一键磨皮插件Delicious Retouch for mac(DR5白金版)

Rose

e3d插件下载Video Copilot Element 3D AE三维模型安装教程 支持M1/M2

Rose

FXGradient (AE颜色渐变快速生成器) v1.2 Mac/win

Rose

怪兽AI数字人短视频创作平台:企业宣传的创新利器

Mr_song

数字人 数字人短视频 数字人直播 数字人软件

同一天!国内AI杀疯了!蚂蚁集团宣布将发布3款AI新产品!腾讯、零一万物、面壁智能推出最新大模型|AI日报

可信AI进展

百度营销平台轻舸升级:AI MAX平均转化率提升7.2%

极客天地

AE插件-漂亮真实高级辉光发光插件 Deep Glow v1.5.7 Win/Mac苹果版

Rose

PS笔刷: 标记笔刷

Rose

FCPX插件-15个镜头漏光散景光效转场过渡动画预设 Light Leaks Transitions

Rose

客户管理太难了?你可能忽视了这些常见问题!

天津汇柏科技有限公司

低代码平台 客户关系管理系统 #人工智能

中文版PS插件-胶片调色降噪锐化HDR图像处理特效滤镜Nik Collection 6.12.0 Win/Mac

Rose

游戏行业怎么定义?为什么需要堡垒机?

行云管家

网络安全 游戏 数据安全 游戏行业

怪兽 AI 知识库:搭建知识库与训练垂类大模型的创新解决方案

Mr_song

AI大模型 大模型 知识库 企业知识库

PS插件眼睛糖果滤镜Alien Skin Eye Candy插件安装教程 Mac苹果版/win

Rose

自定义界面扫码,满足应用个性化定制需求

HarmonyOS SDK

HarmonyOS

怪兽AI知识库:企业内部知识库搭建的智能解决方案

Mr_song

大模型 知识库 知识库问答 知识库软件

AI(文生语音)-TTS 技术线路探索学习:从拼接式参数化方法到Tacotron端到端输出

汀丶人工智能

TTS 文转语音

京东商品列表数据接口为价格监控带来的便利

tbapi

京东API接口 京东商品列表数据接口

OpenAI 联合 SWE 发布 AI 软件工程能力测试集,Gru.ai 荣登榜首

极客天地

怪兽AI知识库:智能时代的企业大脑、企业知识管理

Mr_song

大模型 知识库 知识库管理 知识库工具 知识库软件

深入探索AI文生语音技术的奥秘:从文本输入到逼真语音输出的全链条语音合成过程解析

汀丶人工智能

语音识别 TTS

人工智能 | Hugging Face 的应用

测试人

人工智能 软件测试

2024年网络安全周相关知识汇总

行云管家

网络安全 网络安全周

淘宝商品详情API中的优惠券与红包信息解析

代码忍者

API 测试 API 策略

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