kotlinさわってて色々感じたメモ

はじめに

kotlinでAPIサンプル書いたり、一部のプロジェクトをkotlin化している時の所感メモ

動作環境

  • macOS Sierra
  • 16G
  • HDDタイプのiMac
  • AS 3.0-Beta5
  • gradle plugin 3.0-Beta5
  • gradle runtime-4.2-bin

versionup時のメモ

Convert to Kotlin

これ一見便利そうなんだけど、変換した後のコードをかなり手直ししないとダメっていうのは結構ある

あとこれはIDEAの問題かもしれないけど、

クロージャ記述が補完候補には出るけど選べない

事が多くて、イラッときて一旦Javaで書いてからktファイルに貼り付けとか地味に遣ってたりする

ここらへんは自分のKotlin力が未だ低いから仕方ないかなー(汗

変換できる条件

  • Javaのコードして、そのブロックのみ完結していること
    • とくにJavaのコードを切り貼りコンバートする時に、変換できないことが多々
    • 関数単位/ソース単位であれば

手直ししないとダメなコード

変換直後のコード

な状況なので、最初は !! の置き換え辺りから作業するのが、多分共通認識だとは思う

  • !! => .apply{ }

変換処理的には正しくても、Nullセーフなのが反映されていないのでクラッシュする記述

class DebugSettingFragment : PreferenceFragmentCompat() {
    override fun onCreatePreferences(savedInstanceState: Bundle, rootKey: String) {
        =>
    override fun onCreatePreferences(savedInstanceState: Bundle?, rootKey: String?) {

自動変換だと?がつかなくてクラッシュする


雑感的な話

確かにビジネスロジック的には起きないんですけど、Androidの場合はGC関係でヌルポなのがあるからな。。(汗

確かにRx使えばソレが回避できるのかは凄く知りたい所・・

kotlin対応版さわってみましたが、毎回定型文としてオーバーライドしていた

onRequestPermissionsResult関数を書かなくて良くなってる

ぐらいの差分かなと。まあ確かにそれだけでも楽なことは楽なのですが・・*1

github.com

*1:一度ビルドが必要な状況はかわら無いけど