Kotlin/Nativeで実行ファイルを作ってHelloWorld
Twitterでdroidkaigiのハッシュタグを追いかけていると、『クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium Mobile から Kotlin/Native まで〜 #droidkaigi』という資料を公開してくれていました。
kotlin native気になりながらなかなか試せてない。
— kapiecii (@kapiecii) February 7, 2019
クロスプラットフォームモバイルアプリ開発ツール総ざらい2019 〜Titanium Mobile から Kotlin/Native まで〜 #droidkaigi https://t.co/OO0whWbLVo
「今日を逃すと、次はいつKotlin/Native機運が高まるかわからないぞ!!」ということで公式ドキュメントを参照しながらKotlin/NativeでHelloWorldしてみました。
Kotlin/Nativeはスマホアプリを作れるのも気になるところですが、私はCLIツール作ること・使うことが多いのでCLIツールを作ることをイメージしてHelloWorldしてみました。
目次
こちらのドキュメントに沿って試してみます。
A Basic Kotlin/Native Application - Kotlin Programming Language
環境
インストール
公式githubからbinaryをダウンロードします。
今回はMacで試したので、「kotlin-native-macos-1.3.11.tar.gz」を選択。
ダウンロードしたら、展開して「~/kotlin-native/」以下に配置し、「bin」以下にパスを通します。
compilerを動かすにはJava8が必要とのこと。また、Mac環境ではmacOS SDKも必要らしく、Xcodeから追加できるらしいです。
今回はJavaもmacOS 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でツールを作るのは何かの理由で必要性がでてきたときかな、という印象でした。
スマホアプリ作成については、また別の機会に試してみたいと思います。