A note to our readers: As per your request we have developed a set of features that allow you to reduce the noise, while not losing sight of anything that is important. Get email and web notifications by choosing the topics you are interested in.
Kotlin/Native 0.4でiOSやmacOSのネイティブアプリをビルドできるようになった。JetBrainsのKotlin/NativeテックリードであるNikolay Igotti氏が作っている。加えて、WebAssemblyプラットフォームへの実験的サポートを導入した。
Objective-Cとの相互運用性はKotlin/NativeのiOS/macOS開発サポートへの鍵である。JetBrainsはKotlinで書かれたとても単純なでもアプリケーションの公開さえしている。Apple StoreとGoogle 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レイヤを使える。たとえばfopen
やfread
呼び出しなどだ。根底にあるプラットフォームとの相互運用には相互運用スタブを前もって明示的に生成することが必要となる。
他の新しい機能は、KotlinオブジェクトをC APIとともに簡単に使えるようにする目的のための、オブジェクトの固定である。これはC APIから使われるときにメモリ内にオブジェクトがロックされることを保証するために使う。
Kotlin/Nativeは現在WebAssemblyをサポートしている。これはKotlinをブラウザベースのアプリケーション向けに使うことができるということである。サポートは実験的利用に限られている。これはブラウザのサポートに制限があるためであると、Igotti氏は述べている。
ツールの面では、デバッグが実行時の変数のほとんどに対してインスペクションをサポートしている。そして、大事なことを忘れていたが、新しいプラグインがCLionでのKotlin/Nativeサポートを提供している。
Kotlin/NativeはKotlinにおいてはごく新しい開発で、もともとJVMベースの言語であるKotlinをVMなしで実行するネイティブバイナリにコンパイルできる。これでiOSや組み込みのようなプラットフォームにとくに適したものとなった。そこではVMは許可されていないか望ましくない。Kotlin/Nativeは現在WindowsとLinux、macOS、iOS、Android、WebAssemblyをサポートしている。
Rate this Article
- Editor Review
- Chief Editor Action