根据JetBrains技术主管Nikolay Igotti的介绍,Kotlin/Native 0.4已经可用于为iOS和macOS开发原生应用。此外该版本还为WebAssembly平台提供了实验性支持。
Kotlin/Native对iOS/macOS开发的支持,关键在于实现了与Objective-C的互操作性。JetBrains目前已经发布了一个非常简单的演示应用,该应用使用Kotlin编写,已发布至Apple Store和Google Play。
下列代码片段展示了访问iOS框架的方式:
这一切都是通过新的platform
实现的,并通过库实现了对底层操作系统接口的访问。借此便可以使用提供了POSIX OS层的平台执行各类操作,如调用fopen
、fread
等。以前与底层平台的互操作则需要专门生成的Interop Stub。
新版的另一个新功能对象固定(Object pinning),主要是为了简化通过C API使用Kotlin对象的方式,借此可以确保通过C API消费的对象能够锁定到内存中。
Kotlin/Native现已开始支持WebAssembly,因此可以通过Kotlin开发基于浏览器的应用。但根据Igotti的介绍,由于浏览器支持方面的局限,这种支持目前依然是实验性质的。
在工具方面,调试功能现已支持在运行时检查大部分变量。此外同样重要的是,还通过一个新的插件让CLion可以支持Kotlin/Native。
阅读英文原文:Kotlin Native Adds Objective-C Interop, WebAssembly Support