安卓开发首选语言!Kotlin 1.3.30 改进汇总
上周的 Google I/O 大会上,谷歌官方正式宣布 Kotlin 成为 Android 开发首选语言。见:Java失宠,谷歌宣布Kotlin现在是Android开发的首选语言
现在是一个学习 Kotlin 的好时机了吗?最新版本的 Kotlin 更新了哪些特性呢?一起来看看。
JetBrains 不久前发布了 Kotlin 1.3.30。此版本主要针对 Kotlin 1.3 修复 bug 并更新功能。Kotlin 1.3.30 改进了 Kotlin/Native 和 KAPT,支持更多对无符号类型和数组的操作,并改进了 IntelliJ IDEA 的调试功能,等等。
https://blog.jetbrains.com/kotlin/2019/04/kotlin-1-3-30-released/
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 supportid("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' dopod '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_649uval u2 = 4_000_000_000uprintln(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 名称来查看变量:

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 作为编译器和标准库的版本号。
https://www.infoq.com/news/2019/04/kotlin-1.3.30

点个在看少个 bug ?
关注公众号:拾黑(shiheibook)了解更多
[广告]赞助链接:
四季很好,只要有你,文娱排行榜:https://www.yaopaiming.com/
让资讯触达的更精准有趣:https://www.0xu.cn/
关注网络尖刀微信公众号随时掌握互联网精彩
- 1 中共中央召开党外人士座谈会 7904674
- 2 日本又发生6.6级地震 7807995
- 3 河北沧州杀妻案男方被判死刑 7714231
- 4 全国首艘氢电拖轮作业亮点多 7615822
- 5 王毅:台湾地位已被“七重锁定” 7521958
- 6 经典版QQ宣布回归 7428967
- 7 男子带老婆买糖葫芦被认成父女 7329606
- 8 苏炳添宣布退役 7236602
- 9 日本震中突发大火 民众开车逃命 7135864
- 10 “人造太阳”何以照进现实 7042746


![朱珠不管打得怎么样,装备要到位。[酷][偷笑]#连续14天运动打卡# ](https://imgs.knowsafe.com:8087/img/aideep/2022/8/2/4501d81a627580c02af8493de95cab5c.jpg?w=250)




InfoQ
