はじめに
みなさんこんにちは。Kotlinしてますか?この記事ではまだKotlinしたことないよーという人に向けて、最初のステップを踏み出してもらおうというような意図で書かれました(けっしてタイトルのようなダジャレが目的ではありません)。
Android開発公式言語となったいま、楽しくKotlinしましょう!
Kotlin?
さて、Kotlinとはなんでしょうか、というところから行きましょう。
Kotlinとは、数々のIDEで有名なJetBrainsが開発したJVM言語です。
ものすごく乱暴に言えば、ちょう書きやすいJavaといった雰囲気でしょうか。見た目はかなり異なりますが……
公式サイトによれば
- ボイラープレートコードを(Javaのコードに比べて)劇的に減らせる
- nullとなる可能性の有無を型で制限することによる安全性
- JVM、Android、ブラウザ環境すべてでJavaと100%互換
という感じの言語です。
開発環境
さて、さっそく開発環境をセットアップしましょう。
ローカルに構築したくない、あるいはちょっと試したいだけ、という場合にはTry Kotlinというブラウザでコードを書いて実行できる環境もあります。
しかし、わたしが試した感じではたまにエディタの動作が怪しくなったり、なんのエラーもないコードのコンパイルに失敗したりとやや不安定な気もします。もう改善されているかもしれませんが、気になる人は以下のセットアップを試してみてください。
なお、この記事の執筆時の環境は以下のとおりです。
- Ubuntu 17.10 64bit版
その他のソフトウェア、ツール等に関しては都度、記載していきます.
SDKMAN!のインストール
SDKMAN!とはいろんなプログラミング言語の開発環境(SDK)を管理してくれるソフトウェアです。
SDKMAN! the Software Development Kit Manager
Kotlinのインストールはこれがもっとも簡単と思われるので、これを使います。というわけでインストールしましょう。
公式サイトのInstallのページを見ればすべて書いてありますが、以下のコマンドを実行するだけです。
$ curl -s "https://get.sdkman.io" | bash
インストール自体はこれで完了です。新たにターミナルを開くか
$ source "$HOME/.sdkman/bin/sdkman-init.sh"
を実行してパスの設定をします。
その後、
$ sdk version
を実行して
SDKMAN 5.6.0+287
というふうに表示されればOKです。なお、執筆時点での最新版は上記の通り5.6.0+287 です。
Kotlinのインストール
いよいよKotlinのインストールです!
SDKMAN!でサポートされているSDKについてはSDKsのページに一覧があります(もちろんKotlin以外も)。インストール方法も(たったの1行ですが)書かれています。
こんかいインストールしたいKotlinの場合は
$ sdk install kotlin
こんだけです。
じわじわと(環境によっては一瞬で)# が伸びていき、
Installing: kotlin 1.2.30
Done installing!
となれば終わりです。なお、
Do you want kotlin 1.2.30 to be set as default? (Y/n):
と聞かれたならYと入力してデフォルトに設定しておくのがよいと思います。
$ kotlin -version
Kotlin version 1.2.30-release-78 (JRE 1.8.0_144-b01)
と実行して上記のような出力が得られればインストールは完了です。なお、執筆時点での最新版は上記の通り1.2.30-release-78 です。
楽しくKotlinしましょう!
Hello Kotlin World!
さて、やはり最初のコードはHello World! であると決められています。
Kotlinバージョンは次のようになります(コードハイライトが効かないのが悲しい……。
fun main(args: Array<String>) {
println("Hello, world!")
}
これをhello-world.kt に保存しましょう(Kotlinファイルの拡張子は.ktです)。
保存したファイルがあるディレクトリに移動して、次のコマンドを打ちます。
$ kotlinc hello-world.kt
$ kotlin Hello_worldKt
Hello, world!
kotlinc がコンパイル(Javaのコンパイルコマンドがjavac なのと同様ですね)、kotlin が実行(Javaの実行コマンドがjava なのと同様ですね)です。なお、Kotlinのファイルおよびクラスがコンパイルされたときの命名規則というものもちゃんと決まっていまして、ここでは詳細は割愛しますが、大ざっぱに言って「先頭大文字のキャメルケース、ハイフンはアンダースコアになり、Ktという接尾辞がつく」という感じです。これについては次回以降説明しようと思います。
ともかく、hello-world.kt というファイルをコンパイルすると、Hello_worldKt というクラスができます。
これをkotlinによって実行すると上のような結果が得られます。
ようこそKotlinの世界へ!
ちょっと解説
Javaで同様のコードを記述したときとの違いを簡単に述べます。
- main メソッドを持つstatic クラス、というものは必要なく、トップレベルに直接main 関数を記述できます(そのようなクラスはコンパイル時に自動で作られます)。
- 関数の定義にはfun キーワードを使います。
- 変数の型は:を挟んで変数名の後ろに書きます。
- 配列はArray<T> の形式で書きます。
- System.out.println() メソッドは暗黙的にインポートされているので直接呼び出すことができます。
このようなちょっとずつ書きやすい構文が用意されていて、同じコードをJavaで記述するよりもかなり快適になると思います。
おわりに
この記事を読んだあなたはもう楽しくKotlinをやっている……はずです(おそらく。そうだったらいいなぁ……
もう少し実践的なコードや、IDEの使い方(いくらなんでも毎回コマンドを打つのは大変ですよね?)については次回以降の記事をお楽しみに。
記事なんて待ってられないよ!というあなたには、Kotlin Koansがおすすめです。
Kotlin Koans – Kotlin Programming Language
これはKotlinの練習問題集のようなもので、簡単なものからステップアップを図れると思います。
みなさんのちょう楽しいKotlinライフを願って。ではまた次回。