来了,支持 iOS 开发的 Kotlin/Native v0.4 发布 - 开源中国社区
来了,支持 iOS 开发的 Kotlin/Native v0.4 发布
王练 2017年11月17日

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

王练 王练 发布于2017年11月17日 收藏 21

【腾讯云】如何快速搭建微信小程序?>>>  

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

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

Platform libraries

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

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


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

与 iOS 和 macOS 框架的互操作性

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


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


有关 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]
本文标题:来了,支持 iOS 开发的 Kotlin/Native v0.4 发布
分享
评论(17)
精彩评论
12
敢搞苹果的自留地,不想活了,信不信用kotlin写的app不让你上架
1

引用来自“百世经纶之傲笑红尘”的评论

这是Android界要逆天弑父杀iOS爸爸的节奏吗

引用来自“獜彝”的评论

Android和iOS有个毛关系,Android的上一辈是linux

引用来自“zjtxqjj”的评论

一开始谷歌和苹果关系很好,老乔向施密特展示了新研发的全触控手机,此时谷歌的刚刚收购安卓,还处于开发当中,并且是以键盘为主。从苹果回去后,谷歌就决定推翻现有,让安卓也以全触摸的形式面世。
所以说小米的爹是魅族?
1
kotlin ! ! !
最新评论
1

引用来自“百世经纶之傲笑红尘”的评论

这是Android界要逆天弑父杀iOS爸爸的节奏吗

引用来自“獜彝”的评论

Android和iOS有个毛关系,Android的上一辈是linux

引用来自“zjtxqjj”的评论

一开始谷歌和苹果关系很好,老乔向施密特展示了新研发的全触控手机,此时谷歌的刚刚收购安卓,还处于开发当中,并且是以键盘为主。从苹果回去后,谷歌就决定推翻现有,让安卓也以全触摸的形式面世。
所以说小米的爹是魅族?
0
我在想android这边好像也支持swift.忘了在哪看了个文章
0
可以试试,写swift键盘就跟不要钱一样
0
kotlin要一统江湖啊
0
不知道kotlin在ios表现怎么样
12
敢搞苹果的自留地,不想活了,信不信用kotlin写的app不让你上架
0
小心步子迈大了
0

引用来自“百世经纶之傲笑红尘”的评论

这是Android界要逆天弑父杀iOS爸爸的节奏吗

引用来自“獜彝”的评论

Android和iOS有个毛关系,Android的上一辈是linux
一开始谷歌和苹果关系很好,老乔向施密特展示了新研发的全触控手机,此时谷歌的刚刚收购安卓,还处于开发当中,并且是以键盘为主。从苹果回去后,谷歌就决定推翻现有,让安卓也以全触摸的形式面世。
0

引用来自“百世经纶之傲笑红尘”的评论

这是Android界要逆天弑父杀iOS爸爸的节奏吗
Android和iOS有个毛关系,Android的上一辈是linux
0

引用来自“百世经纶之傲笑红尘”的评论

这是Android界要逆天弑父杀iOS爸爸的节奏吗
:unamused: 百世经纶只能是一页书!!!
1
kotlin ! ! !
0
一统天下
0
这是Android界要逆天弑父杀iOS爸爸的节奏吗
0
kotlin大法好
0
kotlin和golang,哈哈��
0
JB 这是要搞事啊! 抓紧上船:facepunch:
0
一统天下
顶部