来了,支持 iOS 开发的 Kotlin/Native v0.4 发布

栏目: 软件资讯 · 发布时间: 7年前

内容简介:Kotlin / Native v0.4 已发布,这也正是在 KotlinConf 2017 上宣布的支持开发 iOS 应用的版本。 此版本增加了对 iOS 和 MacOS 的 Objective-C API 的访问支持,对 WebAssembly 的实验性支持,同时还引入了一些...

Kotlin / Native v0.4 已发布,这也正是在 KotlinConf 2017 上宣布的支持开发 iOS 应用的版本。

此版本增加了对 iOS 和 MacOS 的 Objective-C API 的访问支持,对 WebAssembly 的实验性支持,同时还引入了一些以 Kotlin / Native 的方式让应用开发更简单的改进。

Platform libraries

为访问底层操作系统接口,Kotlin / Native 提供了一套针对特定平台,任意程序均可使用的平台专用库。以前,你需要使用 cinterop 工具自己生成库,现在开箱即用。

下面是 v0.4 中新平台库的使用演示。

来了,支持 iOS 开发的 Kotlin/Native v0.4 发布

它会将文件的内容读入 Kotlin ByteArray,然后将其标准输出。

与 iOS 和 macOS 框架的互操作性

不同于其他大多数平台上,苹果平台以 Objective-C API 的形式提供对系统框架的访问。为支持这一点,Kotlin / Native 团队实施了一个 Objective-C 互操作层。 例如,以纯 Kotlin / Native 编写的以下代码将读取 iOS 上的应用程序资源:

来了,支持 iOS 开发的 Kotlin/Native v0.4 发布

下面的完整程序将在 macOS 上呈现:

来了,支持 iOS 开发的 Kotlin/Native v0.4 发布

有关 iOS 完整应用程序的示例,请参阅 Kotlin/Native fullstack application

Object pinning

为简化在 C API 中使用 Kotlin 对象,新版本为类型化数组(ByteArray,IntArray,FloatArray 等)提供了新的 API,即 refTo(),pin() 和 unpin()。 它们允许确保对象锁定在内存中,并且其数据地址稳定,从而允许直接从 C API 使用 Kotlin 对象数据,反之亦然。

debugging 改进

v0.4 的 Debugging 增加了检查功能,绝大多数变量都可以在运行时中检查。

#
# bin/konanc kat.kt  -o kat -g
# lldb kat.kexe
(lldb) target create "kat.kexe"
Current executable set to 'kat.kexe' (x86_64).
(lldb) command script import tools/konan_lldb.py
(lldb) b kfun:main(kotlin.Array<kotlin.String>)
Breakpoint 1: where = kat.kexe`kfun:main(kotlin.Array<kotlin.String>) + 26 at kat.kt:25, address = 0x00000001000023ba
(lldb) print args
(ObjHeader *) $1 = [/etc/groups]

WebAssembly

Kotlin / Native v0.4 拥有对 WebAssembly 的实验性支持(-target wasm32),但由于浏览器支持限制,尚不建议使用到生产中。

IDE 支持

Kotlin/Native plugin for CLion 发布,支持使用 CMake 作为构建系统。其中包含来自 IntelliJ IDEA 的 Kotlin 插件中全部代码编辑功能集,同时初步支持项目创建、测试与调试等操作。详情

更多内容请查阅发行说明

下载地址:


【声明】文章转载自:开源中国社区 [http://www.oschina.net]


以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

Release It!

Release It!

Michael T. Nygard / Pragmatic Bookshelf / 2007-03-30 / USD 34.95

“Feature complete” is not the same as “production ready.” Whether it’s in Java, .NET, or Ruby on Rails, getting your application ready to ship is only half the battle. Did you design your system to......一起来看看 《Release It!》 这本书的介绍吧!

CSS 压缩/解压工具
CSS 压缩/解压工具

在线压缩/解压 CSS 代码

JSON 在线解析
JSON 在线解析

在线 JSON 格式化工具

UNIX 时间戳转换
UNIX 时间戳转换

UNIX 时间戳转换