2018-02-05

Kotlinへの移行と習得がスムーズすぎて感動した


Hello, World! しても楽しくなくない?

なので、ストアにリリースするAndroidアプリをKotlinで書きたい!と思いつつも、
現在作成中のアプリはJavaで書かれており、これをリリースしたら、次のアプリはKotlinで書こう!と思っていた。
そんなとき、たまたまAndroid Studioのメニューに神機能を見つけた。

Convert Java File to Kotlin File

任意のJavaファイルを開いている状態で
Code > Convert Java File to Kotlin File を選択すると、該当のJavaファイルがKotlinファイルに変換される。



このファイルをKotlin変換した結果、修正しなきゃいけない箇所がでてくるけど、
そういうのも探して修正しとく? と訊かれるので、OKを選択。

これだけだ。

何が嬉しいのか?

既存プロジェクト、既存コードに対して変換をかけてKotlinファイルを生成していけるので、ゼロから始めるのに比べて、以下のようなハッピーがある。

  • Kotlinを始めようと思ってHello, World! を試してみたものの、それ以降「enjoy Kotlin!」と放り出されて途方に暮れることがない。スタート地点から四苦八苦してゴールに向かうのではなく、ゴール地点からルートを振り返るカンジ
  • 生成されたkotlinのコードがどのように動作するのか、自分がいちばん仕様を知っているので、コード、処理の流れがとても読みやすい。
  • Javaで書いてたあの処理、あの記法は、Kotlinではどう書くのか?と、答えを探し求めてさまよう必要がない。とくに記号系のシンタックスは検索しづらいのでこれは大変助かる。
  • 「動作する自分のアプリ」が手元にあって、ちょっとコードをいじってみてアプリの挙動を確かめる、ということができ、頭に入ってきやすい
  • どう書いたらいいのか、ドキュメントやリファレンスではなく手元の既存コードを参考にしながら書いていける

大体のコードはKotlin変換そのままで動作するが、一部うまくいかない部分もある。
とはいえ、それもKotlinの流儀を学ぶのにちょうどいい量だし、腰を据えて問題解決に取り組むことで、深く理解するいいきっかけになる。
どうしても解決できなかったら、そこだけJavaのままにしておくことももちろん可能だ。
KotlinからJavaのメソッドを呼ぶのも、JavaからKotlinのメソッドを呼ぶのも可能なので困ることはない。
(JavaのクラスやインターフェースをKotlinでextend, implementしたり、その逆もできる)

Utilクラスから始めよう、そして成果物

アプリ全体のコードをKotlin化するのに気が引けるのなら、まずは、みんな大好きStringUtilあたりから変換してみることをおすすめする。

動くコードとともにKotlinに馴染んでいき、
Kotlinの作法とかもわかってきたタイミングで体系的に学ぶのが習得の近道だと思う。

Java → Kotlin 変換 そのあとに。

このようにして作ったアプリを先日リリースしたので、最後に紹介。
子供の頃に20x20のインド九九をマスターすると色々捗るし、大人にとっては格好の脳トレになるな〜という動機から。





なにとぞひとつmm