Androidアプリの開発言語Kotlin!
以前Androidの開発環境の際にも触れましたが、多くのAndroid開発者が利用している言語としてJavaが挙げられます。弊社でも主にJavaを利用して開発を行っております。そんな中、2017年5月に開催されたGoogle I/OにてAndroidStudioの公式言語としてKotlinを採用するとの発表がありました。[1]
そこで、今回は最近話題のプログラミング言語Kotlinについて触れようと思います。
【Kotlinについて】
Kotlinは、JetBrainsによって開発されたJVM、Android、JavaScript、およびNativeを対象とするOSS静的型付きプログラミング言語です。2010年から開発が始まり、早い段階からオープンソースとして公開され、現在無償で利用することができます。[2]
まずは、簡単な導入とJavaとの互換性、差異について確認していきましょう。
【AndroidStudioへの導入について】
AndroidStudio 3以降はプロジェクト作成時にKotlinの利用を選択することができますが、それ以前のバージョンではプラグインの導入が必要になります。
今回はAndroidStudio 2.3にKotlinを導入してみることにします。 まずAndroidStudioにプラグインを導入します。すでにかなりの方がダウンロードしているようです。( 2017/06/14 現在 )
プラグイン導入後は、Kotlinファイルの追加や、既存のJavaファイルの変換など簡単に行うことができます。
もちろん、Javaとの相互運用性が100%となっており、Kotlinファイル内でJavaの文法を用いてJavaファイルと連携などが可能となっています。[2]
【Javaとの差異について】
少々専門的な話になってしまいますが、開発者にとっていくつか有用な差異があります。
・NULLの扱い [2]
以前、Swiftを紹介した際にも”変数に何もはいっていない状態を許可する必要がある”と記載しましたが、Kotlinでも同じように許可をせずに空の変数を利用した場合、コンパイルエラーとなります。 開発者にとっては不具合に対応しやすくなっています。
・チェック例外を利用しない [2]
Javaではチェック例外というtry-catchで例外処理をかかなければコンパイルエラーになるメソッドが多数存在します。元々は、開発者が書いたコードに問題がなくとも、発生し得るエラーを適切に処理してほしいメソッドに対して実装されている機能です。
ですが、Kotlinではこのチェック例外を一切使用していません。いくつか理由はあるそうですが、例えば、Javaでは絶対に例外が発生しないと保証できてもチェック例外の仕様上、例外処理を書かなければならない場合があります。 このような不要な記述は、ソフトウェアの生産性を低下させることに繋がります。
・記述が少なくて済む!
既存のJavaで書かれたコードと比べると約40%削減されています。[2] より少ないコードで開発できれば、開発期間の短縮や、可読性の向上、不具合の抑制につながります。
・便利な機能!
Javaにはない多数の便利な機能利用できます。 いくつかありますが個人的に便利だと思った機能を紹介します。
[ String Template ] [3]
他の言語ではよく見かける書き方ですが、文字列の中に変数を入れることができます。
val x = 1
val y = 2
println(“$x + $y”) // 1 + 2
[ 関数 ] [4]
クラスから独立した関数を作成することができます。
fun mae(a:String): String{
return “mae” + a
}
val str = mae(“be”) // maebe
この関数はさらに省略して書くことができます。 コード量がかなり短いことがわかるかと思います。
fun mae(a:String): String = “mae” + a
val str = mae(“be”) // maebe
【まとめ】
実際に利用してみてKotlinの文法自体はSwiftに非常に近いものを感じました。 ある程度プログラミングを行っている方ならば、かなり馴染みやすい言語だと思います。 またJavaとの互換性や導入のしやすさなど、気軽に実装できる点が素晴らしいですね。
Kotlinは、Android開発だけでなくサーバー側の開発やJavascriptとの連携などもサポートしているため、バックエンドの開発にもおすすめです。 さらに、現在iOSやmac OS向けにも互換性を持たせるような試みもなされており[2]、今後は利用可能範囲が広がっていくことと思われます。 非常に利用しやすい言語ですので、この機会にKotlinの導入を検討してみてはいかがでしょうか。
記事作成日:2017年6月30日
参考
[1] Kotlin Blog – Kotlin on Android. Now official
https://blog.jetbrains.com/kotlin/2017/05/kotlin-on-android-now-official/
[2] Kotlin – FAQ
https://kotlinlang.org/docs/reference/faq.html
[3] Kotlin – Basic Types
https://kotlinlang.org/docs/reference/basic-types.html
[4] Kotlin – Functions
https://kotlinlang.org/docs/reference/functions.html