GoogleDevelopersのビデオで知りました。

Android KTXとは

android/android-ktx: A set of Kotlin extensions for Android app development.

Kotlinの拡張関数を使ってAndroid APIでの開発をやりやすくしよう、というものです。

新しい機能が使えるようになるというわけではないのですが、もともとJava向けに書かれたAndroid APIですから、Kotlinで書こうとすると少し冗長になっていたところが、 簡潔にわかりやすく書くことができます。

どういうのがあるの

Githubに載っているのや、ドキュメントのを書いてみます。

Uri

// kotlin
val uri = Uri.parse(myUriString)

// android-ktx
val uri = myUriString.toUri()

Stringにメソッドが追加されるので、文字列からそのまま変換できます。

View

// kotlin
view.postDelayed({
    ...
}, 200);

// android-ktx
view.postDelayed(200) {
    ...
}

Kotlinは最後の引数がラムダ式の場合は括弧を閉じた後にラムダ式を書けるのですが、デフォルトのメソッドではミリ秒が最後になっているので、全体を括弧で閉じざるをえない。

SharedPreferences

// kotlin
sharedPreferences.edit()
    .putBoolean("key", value)
    .apply()
    
// android-ktx
sharedPreferences.edit {
    putBoolean("key", value)
}

Bundle

// kotlin
val bundle = Bundle()
bundle.putString(ID, "1234")
bundle.putString(NAME, "hoge")

// android-ktx
val bundle = bundleOf(ID to "1234", NAME to "hoge")

etc…

core-ktxで探すことができます。

使うには

build.gradleに追加。

dependencies {
    implementation 'androidx.core:core-ktx:0.1'
}

まとめ

ちょっとした違いなのですが、このちょっとしたことだけでプログラムを組むのが楽しくなりそうですね。