kapieciiのブログ

日々学んだことを残しておくためのブログです。このブログはGoogle Analyticsを利用しています。

Kotlin/Nativeで実行ファイルを作ってHelloWorld

Twitterでdroidkaigiのハッシュタグを追いかけていると、『クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium Mobile から Kotlin/Native まで〜 #droidkaigi』という資料を公開してくれていました。

speakerdeck.com

「今日を逃すと、次はいつKotlin/Native機運が高まるかわからないぞ!!」ということで公式ドキュメントを参照しながらKotlin/NativeでHelloWorldしてみました。
Kotlin/Nativeはスマホアプリを作れるのも気になるところですが、私はCLIツール作ること・使うことが多いのでCLIツールを作ることをイメージしてHelloWorldしてみました。

目次

こちらのドキュメントに沿って試してみます。

A Basic Kotlin/Native Application - Kotlin Programming Language

環境

インストール

公式githubからbinaryをダウンロードします。

github.com

今回はMacで試したので、「kotlin-native-macos-1.3.11.tar.gz」を選択。

ダウンロードしたら、展開して「~/kotlin-native/」以下に配置し、「bin」以下にパスを通します。
compilerを動かすにはJava8が必要とのこと。また、Mac環境ではmacOS SDKも必要らしく、Xcodeから追加できるらしいです。
今回はJavamacOS SDKも入っていたので問題なし。

ターゲット

Kotlin 1.3.11時点では、下記の環境向けにコンパイルできるようです。

$ kotlinc-native -list-targets
macos_x64:                    (default) macbook, macos, imac
ios_arm32:                              iphone32
ios_arm64:                              iphone, ipad, ios
ios_x64:                                iphone_sim
android_arm32:
android_arm64:
wasm32:
zephyr_stm32f4_disco:

hello.kt

hello.ktを作成します。

fun main(args: Array<String>) {
    println("Hello Kotlin/Native!")
}

初回実行時は依存ファイルが色々とダウンロードされるので、少し時間がかかります。

$ kotlinc-native -o hellokt hello.kt

出力されたファイルの拡張子は「.kexe」です。

$ ./hellokt.kexe
Hello Kotlin/Native!
$ file hellokt.kexe
hellokt.kexe: Mach-O 64-bit executable x86_64

その他

gradleの使い方も説明されています。

Gradle for Kotlin/Native - Kotlin Programming Language

感想

Kotlinには、HTTPリクエストやファイル操作などの機能がなく、Cのライブラリを使う必要があるようです。

Interop with C Libraries - Kotlin Programming Language

CLIツールで使うとすると、そのあたりの機能は結構使うことが予想されるので、Kotlin/Nativeでツールを作るのは何かの理由で必要性がでてきたときかな、という印象でした。

スマホアプリ作成については、また別の機会に試してみたいと思います。

kapieciiのブログについてお問い合わせがある場合、下記のフォームからご連絡をお願い致します。
お問い合わせはこちら