Developer's Blog

かわいいプログラミング言語 Kotlin を既存の Android プロジェクトに導入したい

Fenrir Advent Calendar 2015

こんにちは、アプリケーション共同開発部 開発担当の西林です。

これは、 Fenrir Advent Calendar 2015 の11日目です。

私は公私共に Android アプリの開発を行っていますが、先日スマートフォンのテザリングで Android Studio とプラグインのアップデートをしていたら、1ヶ月のデーター通信が 10GB を超えて低速モードになってしまい、通信費と心にグッと来ました…。

今日はそんな Android の界隈で最近話題になっているプログラミング言語、 Kotlin について紹介します。

紹介と言っても既に今年は色々なAdvent CalendarでKotlinに関する記事が投稿されていて、かつ私も Kotlin Advent Calendar 2015 に投稿していますので、こちらでは Kotlin そのものではなく、既存の Android プロジェクトに Kotlin を導入するいくつかのアプローチを紹介したいと思います。

プロジェクト内の全部、または一部コードを Kotlin に置き換える

プロジェクト Kotlin 成分を最高にするには、やはり既存のコードを全て Kotlin に置き換えることが一番ですね。

自動変換を利用して、既存の Java コードを Kotlin へ

IntelliJ IDEA の Kotlin プラグインには Java から Kotlin へ自動的に変換する機能が用意されています。

IntelliJ IDEA のメニューから Convert Java File to Kotlin File を選択しましょう。現在開いている Java のファイルが Kotlin のファイルに自動変換されます。稀に自動変換だけで補完しきれないような変更が必要になる時がありますが、その場合は警告が出ますので、手動で置き換えるとよいでしょう。基本的に Java にできて Kotlin にできないことはないはずです。

既存の Java ライブラリーを Kotlin ライブラリーへ置き換える

Java から Kotlin に変更したら、使用しているライブラリーをKotlin製のものに置き換えるとよいでしょう。

以下に私のオススメライブラリーを一覧します。

Java Kotlin ライブラリーの概要
RxJava RxKotlin FRPのためのフレームワーク、RxKotlinはRxJavaを便利に使うための拡張関数群。
RxBinding RxBinding RxBinding は Rx の Observable と View をバインドするための便利ライブラリー。 Kotlin 専用の拡張関数ライブラリが提供されている。
ButterKnife Kotlin Android Extensions View のインジェクションライブラリー、 Kotlin Android Extensions はレイアウトの xml ファイルから拡張プロパティーを自動生成する公式ライブラリー

データクラスのみ Kotlin で置き換える

いきなりプロジェクト全体を Kotlin のコードをにするのはリスクも心理的障壁も高いですね(もっとも、自動テストが整備されいればそのどちらもかなり低くなりますが)。

そこで、簡単に置き換えやすいデータクラスのみを Kotlin に置き換えるとよいかもしれません。

データクラスをKotlinに置き換えると以下のようなメリットがあります。

  • プロパティーの定義からボイラープレートコードが減る(Field+Getter+Setter -> プロパティー宣言のみ)
  • data アノテーションを使うとデータクラスに必要な便利メソッドが自動的に用意される(toString, copy など)

新規コードのみ Kotlin で書く

既存のコードを置き換えることに色々不都合があることもあると思いますが、その場合は新規コードだけをKotlinで書くこともできます。

拡張関数や拡張プロパティーを使えば、制約はありますが既存のJavaクラスを拡張することもできます。

また、 Kotlin の高い Java との相互運用性のおかげで、ほぼ全ての Kotlin コードが Java から呼び出せます。

間接的なコードを Kotlin で置き換える

Kotlin 大好きな私としては、できることなら全てのコードを Kotlin で埋め尽くしたいですが、残念なことにまだ Kotlin は Java と比べるとマイナーな言語ですし、 このまま Kotlin が使われ続けるかはまだわかりませんので、プロジェクトのコードに Kotlin を含めるのが難しいことも少なくありません。

そういった時は Kotlin で作られたライブラリーを使うとよいかもしれません。

また、自分で作るライブラリーを Kotlin で書くのもよいでしょう。

ただし、 Kotlin 自体はかなり大きなライブラリー(1.0.0-beta3時点でメソッド数が約7500個ほど)なので、 Android アプリで使う時はメソッド数の制限に注意が必要かもしれません。

まとめ

Kotlin は非常に生産性が高く、モダンなアプローチを利用でき、かつ Android 開発に向いている言語です。

みなさんも是非、 Kotlin を使って楽しい Android 開発ライフを送ってみてください!

フェンリルのオフィシャル Twitter アカウントでは、フェンリルプロダクトの最新情報などをつぶやいています。よろしければフォローしてください!

Copyright © 2019 Fenrir Inc. All rights reserved.