Native v0.8 released

我们很高兴地宣布Kotlin/Native 0.8版本正式发布,这个版本的重点如下:

  • 更安全的协程编写方式
  • 扩展了标准库功能
  • 更好地支持IOS开发

此外该版本还修复了大量的bug及优化了性能。

AppCode和CLion Kotlin/Native插件已经更新至支持0.8版本,同时性能及可用性都有所改善。
二进制包可以在下面这些链接下载:macOS, Linux, Windows
A Linux Snap package is also available.
GitHub正式版发布页面

更好的协程支持

在0.8版本之前,Kotlin/Native应用会将单例的状态保存到执行线程中,因此在不同的线程上的单例的状态很可能并不同步。现在将冻结的概念延伸到单例中,我们将允许共享不可变的状态。
例如以下代码

将读取配置文件并在之后返回配置的width属性。Config文件将会在每次执行时都读取一次,对于所有线程及执行者可见。但是一旦完成,该对象将被冻结,并且不能再被修改(任何修改的动作都将抛出错误InvalidMutabilityException)。
旨在让Kotlin/Native提供更好的并发支持的另一个特性是原子值及引用。
例如,通过扩展上述示例,添加一个可编辑的程序图标属性,我们可以这样编写

请注意,这是原子性的操作,其图标数据被存储在一个冻结了的原子引用中。这保证了它的更新是原子性的,且其在所有客户端中的状态都是一致的。

库的改进

随着0.8标准库(kotlin.*)的正式发布,最终Kotlin./Native会采取expect/actual的方案来与其他平台统一标准化,并且大部分(反射类及一些同步相关的操作)会与其他Kotlin规范匹配。此外,标准随机数生成器及集合重排函数已经可以使用了,不再需要使用特定于平台实现的API来获取随机数。
JetBrains还提供了其他重要的库,如kotlinx.coroutines、kotlinx.serialization,以及针对Kotlin/Native正在进行实验性支持的Ktor HTTP客户端,意味着可以编写一套让ios app及android app共享的逻辑近似的REST API。

对iOS开发的改善

我们正努力让Kotlin/Native成为ios开发的一个可用技术,所以在这个版本中,我们修复了一些导致无法发布到AppStore的令人烦恼的问题,一个在32位ARM iOS上的框架初始化问题,因此Kotlin/Native能兼容旧设备。

让我们尽情享受Kotlin!

此条目发表在官方博客分类目录。将固定链接加入收藏夹。

发表评论

电子邮件地址不会被公开。 必填项已用*标注