アプリ開発日誌
2017.06.26
KotlinでAndroid開発!
# KotlinでAndroid開発しよう
Androidアプリ開発者の渡辺です
Androidアプリ=Java言語で実装はエンジニア以外の人でもご存知かと思いますが、
今日の開発においてJava以外での開発もできるようになっています。
クロスプラットフォーム界隈ではXamarinのC#、FacebookのReact.Nativeではjavascriptで
開発できますが、今回はJETBRAINSのKotlinという言語についてです。
(Androidの綜合開発環境であるAdnroidStudioはJETBRAINSのInteliJ IDEAがベースになってたりします。)
## Kotlinの魅力とは
AndroidStudioでKotlinによる実装の魅力について4つ魅力についてまとめます
### Concise 簡潔
記述量を減らすことができます
Javaの場合
Kotlinの場合
getters、setters、equals()、hashCode()、toString()およびcopy()を1行にPOJOを作成することができます。
またLambda式をライブラリー(https://github.com/aNNiMON/Lightweight-Stream-API)を追加して実装したり、Java8に上げたりしますが、Kotlinで書くことができます
またシングルトンを実装したい場合は
といった感じでソースコードを短く、簡潔に書くことができます。
### Safe
バグをうまないための工夫が言語に現れています。
NullPointerExceptionをコンパイルエラーで啓蒙してくれること
誤ってNullを操作するのを防いでくれること
### Interoperable
SAMサポートを含む100%の互換性があり、JVM上の既存のライブラリを使用することができます。
### 導入
KotlinをGradleでビルドするには、kotlin-gradleプラグインを設定してプロジェクトに適用し、kotlin-stdlibの依存関係を追加した上で
gradleに追加するだけで、既存のjavaで書かれたプロジェクトにも使うことができるので導入のハードルは低いと思います。
gradleのより詳しい導入方法は公式のリファレンスを参照してください。
### iOSアプリエンジニアにも受けがいい
SwiftによるiOSアプリ開発者もKotlinのソースコードは目に優しいようです。文法が似ているからだと思います。
「わかる!わかるぞ!」といった感じですね。
## まとめ
記述量を減らしたり、Javaでうっかりミスしてしまいがちなソースをコンパイルエラー時に啓蒙することで、バグを0に貢献することができますし、
言語の特性をいかして簡潔に書くことでソースコードの品質を向上することができるでしょう。
個人的にはスコープ関数に魅力を感じました。
e.d.aの案件ではkotlinによる実装を行なっているものもあり、導入にポジティブ姿勢です。
(勉強会とかだとサンプルソースがkotlinじゃないとなんかすいません的な小ネタをみます笑)
## kotlinを勉強するならこれ的なやつ
- 公式(Androidについて) -> https://kotlinlang.org/docs/reference/android-overview.html
- kotlinリンク集 -> https://kotlin.link/
- !!無料PDF!! Kotlin入門までの助走読本(日本Kotlinユーザーグループ) -> https://drive.google.com/file/d/0Bylpznm149-gTGRjOFRkWm9PODg/view