2017年のGoogle I/Oで正式な開発言語となったKotlinですが、
実際のところ、「Androidアプリ開発ならJavaとKotlinどっちが多いのか?」
また、「どっちが開発しやすいのか?」を記事にしたいと思います。
※Kotlinがどんな言語か知りたい方は以前社内でKotlin勉強会を実施したので、その時の記事をどうぞ
JavaとKotlinどっちが多い?
実際どうなの?と気になるところですよね
ですが、Androidだけがターゲットとなるとなかなか調べても情報が出てなかったりしますが…
ズバリ!
社内ではまだJavaで開発しているアプリが多いです
と言うのも昔作ったアプリはもちろんJavaで作っているので、それの保守などはJavaになるからですね。
ですが、もちろんKotlinで開発することも増えてきています。
せっかくなので弊社のLive!アンケートを使ってどちらが多いか投票してもらおうと思います!
是非お願いします!
投票はこちらから
結果を見たい方はこちら!
JavaとKotlinどっちが開発しやすい?
こちらは人によっても変わってくるかと思いますので、私の意見になりますが…。
Kotlinが開発しやすいです!
理由はいろいろありますけど個人的に大きいのはこの2つです!
1.android-ktxライブラリがあること
android-ktxとは簡単に言うと「Kotlinの拡張関数を使ってより簡潔にコードをかけるようにしよう」というものです。
これのおかげで冗長なコードを書かなくて済むことが大きいです。
例えば公式の紹介にあったonPreDrawでの操作などはこのような形になります
Java | Android KTXとKotlin |
view.getViewTreeObserver().addOnPreDrawListener(() -> { hogehoge(); return true; }); |
view.doOnPreDraw { hogehoge() } |
2.NULL安全であること
JavaだとNullPointerExceptionが発生する可能性があるところでは毎回nullチェックをする必要があり、
以下のように非常に冗長なコードを書かなければなりません。
if (bravesoft != null) {
if (bravesoft.ceo != null) {
If (bravesoft.ceo.name != null {
String ceoName = bravesoft.ceo.name;
}
}
}
しかし、Kotlinではコンパイラがnullチェックを行ってくれるため、そもそもnullになる可能性があるところではコンパイルが通らなくなります。
もちろんNullable型のデータを使用したい場合もあると思いますが、
その場合はこのように「?.」で呼び出すことでその変数が null でない場合は普通に実行され、null の場合はその式全体が null になります。
println(ceoName?.length)
これらのように私はKotlinを推していきたいですね!
確かに1〜2年前はまだKotlinのサンプルなども少なくいろいろと大変だったかと思いますが、
今ではだいぶ充実してきているので何か困った時でもすぐに対応できるようになってきたように思います。
是非皆さんもKotlinを勉強してみてはいかがでしょうか?