Kotlin Native新增Objective-C互操作能力以及对WebAssembly的支持

根据JetBrains技术主管Nikolay Igotti的介绍,Kotlin/Native 0.4已经可用于为iOS和macOS开发原生应用。此外该版本还为WebAssembly平台提供了实验性支持。

\\

Kotlin/Native对iOS/macOS开发的支持,关键在于实现了与Objective-C的互操作性。JetBrains目前已经发布了一个非常简单的演示应用,该应用使用Kotlin编写,已发布至Apple StoreGoogle Play

\\

下列代码片段展示了访问iOS框架的方式:

\\
\import kotlinx.cinterop.*\import platform.Foundation.*\import platform.objc.*\import platform.osx.*\fun readResource(resourceName: String): ByteArray {\    val filePath = NSBundle.mainBundle.pathForResource(resourceName, ofType = null)\  val fileData = NSData.dataWithContentsOfFile(filePath!!)\  ?: throw Error(\"failed reading resource $resourceName\")\  return fileData.bytes!!.readBytes(fileData.length.toInt())\}\
\\

这一切都是通过新的platform实现的,并通过库实现了对底层操作系统接口的访问。借此便可以使用提供了POSIX OS层的平台执行各类操作,如调用fopenfread等。以前与底层平台的互操作则需要专门生成的Interop Stub。

\\

新版的另一个新功能对象固定(Object pinning),主要是为了简化通过C API使用Kotlin对象的方式,借此可以确保通过C API消费的对象能够锁定到内存中。

\\

Kotlin/Native现已开始支持WebAssembly,因此可以通过Kotlin开发基于浏览器的应用。但根据Igotti的介绍,由于浏览器支持方面的局限,这种支持目前依然是实验性质的。

\\

在工具方面,调试功能现已支持在运行时检查大部分变量。此外同样重要的是,还通过一个新的插件让CLion可以支持Kotlin/Native

\\

Kotlin/Native是Kotlin的最新成果,可用于将最初仅仅基于JVM的语言Kotlin编译为无需虚拟机即可运行的原生库。因此该技术非常适合诸如iOS等平台以及嵌入式设备等不能或者无法运行虚拟机的环境。Kotlin/Native目前已经可以支持Windows、Linux、macOS、iOS、Android和WebAssembly。

\\

阅读英文原文Kotlin Native Adds Objective-C Interop, WebAssembly Support

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值