内容简介: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 中新平台库的使用演示。
它会将文件的内容读入 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]
以上就是本文的全部内容,希望本文的内容对大家的学习或者工作能带来一定的帮助,也希望大家多多支持 码农网
猜你喜欢:- Iceworks 支持小程序开发
- 6款支持敏捷开发的项目管理工具,助力开发者驶入开发快车道
- RhaPHP 1.5.1 发布、支持小程序开发
- YuebonCore 快速开发框架支持 .Net 5.0
- 学起来:Flutter将支持桌面应用开发
- RT-Thread Studio V2.1.0 发布,支持用户自制开发板支持包
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
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!》 这本书的介绍吧!