みんからきりまで

きりみんです。

2015年のAndroid開発はKotlinで決まりかもしれない

いや、ネタとかじゃないんで。

AndroidJavaそろそろ限界問題

以前の記事にも書いたけど、最近の関数型プログラミングやRxJavaなどの流れの中で、ラムダも書けない言語では限界を感じ、何かAndroid開発を救ってくれる魔法のアイテムを探す必要に迫られていました。
そして行き着いたのがKotlinでした。

Kotlinとは

Kotlinはプログラミング言語です。 JVM言語で、いわゆるaltJavaの一つです。
開発したのはAndroid StudioのベースとなっているIntelliJを開発しているJetBrains社で、2011年に生まれたばかりのとても幼い子です。
特徴は型推論、null安全、高階関数、可愛い名前などで、Javaより書きやすく関数的で、尚且つScalaほど複雑にはならない事を目指しているようです。
最近ではSwiftに似ていると言われるようです。

なぜKotlinか

Retrolambda、Groovy、Scalaなど様々な選択肢の中で何故ドマイナーなKotlinを選んだのか。
それにはちゃんと理由があります。

1.Kotlinの文法は美しく書きやすい

前々からKotlinの存在は一応知っていたのですが、正直ネタ言語枠だと思っていて(ごめんなさい)、あまり真面目な選択肢として候補にありませんでした。
しかし、ScalaでのAndroid開発について調べている時にたまたまKotlinの言語仕様を目にし、ちゃんと調べてみると、正に自分がAndroid開発に欲しいと思っていたものが全て揃っている事に気がついたのです。

基本的にはJavaの仕様や文法を継承し互換性を保ちながら、型推論、valによる不変値宣言、Null安全機構、Java8の関数型インターフェイスと互換性のあるラムダ、コレクションへのmapやfilterなどの高階関数拡張などなど、まるでサイコーにクールなJavaの最新バージョンが突然降ってきたかのような言語です。
RxAndroidもKotlinならば無名クラス地獄にならずスマートに利用する事が出来ます。
キャストにasを使ったり、三項演算子の代わりにif文を式として返せるなど可読性向上のための細かい仕様も地味に嬉しい。

詳しい言語仕様などの紹介はこの辺りを記事を参考にすると良いと思います。
Kotlin - SwiftでAndroidアプリを作る!!? - Qiita
Kotlinでリスナーやコールバックをスッキリと書く【関数リテラルとSAM変換】 - Qiita
【Nullいことしてんじゃねぇ】声に出して読みたいKotlin #ktac2014 - Javaプログラマーのはしくれダイアリー

2.導入がとても簡単

開発がJetBrains社という事もあり、Android StudioであればKotlinはある意味公式サポートされており導入が非常に簡単です。
具体的には、.ktというファイルを作ると「Kotlinプラグインをインストールする?」というポップアップが出てくるので、インストールしてAndroid Studioを再起動すると今度は「build.gradleにKotlin関連の記述追加する?」というポップアップが出てくるので了承すると自動でbuild.gradleを書き換えてくれてKotlinでAndroid開発が出来るようになります。
別途PCにKotlinをインストールしたりする必要もなく、retrolambdaを導入するよりも簡単なくらいじゃないでしょうか。

3.IDEのサポートがちゃんと効く

ScalaなどJava以外の言語でAndroid開発をする時にネックとなるのはIDEのサポートではないでしょうか。
KotlinはIntelliJのJetBrains社が開発している事もあり、現状Kotlinプラグインによってかなり手厚くIDEのサポートが受けられます。
Javaでの開発に比べると、まだ一部機能が少なかったりする部分もありますが、基本的にはコード補完や参照ジャンプなどはしっかり効いていて、コーディング作業はほぼ違和感なく行えます。
また、プラグインも公式なので今後どんどん機能拡張されてゆく事が期待できるんじゃないかと思っています。

4.名前がかわいい

可愛い...幼い...大正義...

実際にKotlinでAndroidアプリを書いてみて

Kotlinの試し書きで書いてるコードです。
WhoOnGitHub/UserInfoActivity.kt at master · kirimin/WhoOnGitHub · GitHub

Kotlinを書くのは初めてで言語仕様なども調べながらなので、多分あまり良い書き方は出来ていないと思いますが、それでもスラスラととても気持ちよく書く事が出来ました。
書いていて本当に感じるのは書きやすく楽しいという事です。書けば書くほどKotlinがどんどん可愛く思えてきます。 2015年のAndoird開発、選択肢の一つとしてKotlinはかなりアリなんじゃないでしょうか。

まとめ

アニメ観るならdアニメストア、アンドロイドやるならKotlinってワケ。