BT

Your opinion matters! あなたのご意見でInfoQが変わる!

Kotlin NativeがObjective-Cとの相互運用性とWebAssemblyサポートを追加

| 作者: Sergio De Simone フォローする 6 人のフォロワー , 翻訳者 阪田 浩一 フォローする 0 人のフォロワー 投稿日 2017年12月5日. 推定読書時間: 3 分 |

あなたのリクエストに応じて、ノイズを減らす機能を開発しました。大切な情報を見逃さないよう、お気に入りのトピックを選択して、メールとウェブで通知をもらいましょう。

原文(投稿日:2017/11/28)へのリンク

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 StoreGoogle 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レイヤを使える。たとえばfopenfread呼び出しなどだ。根底にあるプラットフォームとの相互運用には相互運用スタブを前もって明示的に生成することが必要となる。

他の新しい機能は、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

Adoption Stage
Style

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション

InfoQにログインし新機能を利用する


パスワードを忘れた方はこちらへ

Follow

お気に入りのトピックや著者をフォローする

業界やサイト内で一番重要な見出しを閲覧する

Like

より多いシグナル、より少ないノイズ

お気に入りのトピックと著者を選択して自分のフィードを作る

Notifications

最新情報をすぐ手に入れるようにしよう

通知設定をして、お気に入りコンテンツを見逃さないようにしよう!

BT