KotlinNative で HelloWorld する

公開日:2018-10-17
最終更新:2018-10-24
※この記事は外部サイト(https://qiita.com/kimihiro_n/items/089564b...)からのクロス投稿です

Kotlin 1.3

Kotlin 1.3 が発表されて KotlinNative がベータ版として同梱するようになりました。 今までは JVM とか JavaScript といった環境でしか動かなかったものが、KotlinNative ではバイナリとしてOSから直接動かせるようになります。JVM に依存しなくなるので iOS アプリも Kotlin で作れるようになるのではと話題になっています。マルチプラットフォーム開発の本命となるのか気になりますね。

サーバーサイド KotlinNative

ネイティブ化する恩恵はアプリだけでなく、サーバーとして動くプログラムでも得られます。JVM は仮想マシンの一種なのでアプリケーションの立ち上げに時間がかかってしまったり、ディスク・メモリの容量を余分に食ってしまったりといった欠点があります。しかし KotlinNative でバイナリとしてアプリケーションを生成できるようになれば、このオーバーヘッドなしに動かすことができるようになります。Docker 化するときもイメージが作りやすくなりそうです。 また、Kotlin 1.3 から Coroutines が使えるようになったのでノンブロッキングなウェブサーバーを作れるようになりました。外部の通信やファイルの入出力などを CPU で待たずに処理できるようになるので、非常に効率よくリクエストを捌けるようになります。Kotlin の非同期ウェブフレームワーク ktor も 1.0.0 としてそろそろ正式リリースされるそうなので、これは是非試してみたいと思いました。 Python より型が厳密で、Goより取っつきやすい言語(※個人差があります)なので、もしかしたら一気に流行るのではと期待しています。

HelloWorld する

今回は KotlinNative で Ktor を動かすところまで試そうと思ったのですが、まだ KotlinNative 対応していなかったり、他の Kotlin ライブラリを導入するあたりで躓いたのでとりあえず HelloWorld までをまとめてみました。

GitHub: Kotlin Native Support #571 - https://github.com/ktorio/ktor/issues/571

検証環境

  • OS: Ubuntu 16.04
    • (Windows10 WSL上で実行)

Kotlin のインストール

完全に Kotlin 1.3 リリースされた気でいましたが、2018/10/17 現在まだでした…。 なので Github から直接落としてきます。 (リリース後は SDKMan を入れて sdk install kotlin で入るそうです)

# ダウンロード
cd /tmp
wget https://github.com/JetBrains/kotlin-native/releases/download/v0.9.3/kotlin-native-linux-0.9.3.tar.gz
tar -zxvf kotlin-native-linux-0.9.3.tar.gz

# 設置してパスを通す (場所はお好みで)
sudo mv kotlin-native-linux-0.9.3 /opt/
export PATH=$PATH:/opt/kotlin-native-linux-0.9.3/bin

kotlinc-native というコマンドが使えるようになってればインストール完了です。別途 Java が使えるようになってる必要があるかもしれません。

HelloWorld する

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

https://kotlinlang.org/docs/tutorials/native/basic-kotlin-native-app.html

KotlinNative の公式ページから HelloWorld のサンプルを コピペ 心をこめて手打ちします。

# コンパイル
kotlinc-native hello.kt -o hello

# 実行!!
./hello.kexe

お疲れ様でした。

ちなみに Kotlin 1.3 から main の引数が不要になったので、

fun main() {
    println("Hello Kotlin/Native!")
}

のようにしてもちゃんと動いてくれました。Java っぽさが消えましたね。

Kotlin 1.3 や Ktor 1.0 の正式リリース楽しみですね。 Native でもウェブサーバー作れるようになったらまた試してみたいです。

記事が少しでもいいなと思ったらクラップを送ってみよう!
18
+1
@kimihiron'の技術ブログ

よく一緒に読まれている記事

0件のコメント

ブログ開設 or ログイン してコメントを送ってみよう
目次をみる

技術ブログをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

技術ブログを開設する

Qrunchでアウトプットをはじめよう

Qrunch(クランチ)は、ITエンジニアリングに携わる全ての人のための技術ブログプラットフォームです。

Markdownで書ける

ログ機能でアウトプットを加速

デザインのカスタマイズが可能

技術ブログ開設

ここから先はアカウント(ブログ)開設が必要です

英数字4文字以上
.qrunch.io
英数字6文字以上
ログインする