Android APIs are sometimes hard to use Kotlin allows us to reshape existing API Extension functions and properties Named and default parameters Operator overloading Lambdas, higher order functions, and inline functions Everyone has their own collection of utilities…
Google takes a stance, creates their own First appeared Feb 2, 2018 Goals Only provide uniquely Kotlin APIs Don’t provide new implementation, just new syntax Minimize overhead, focus on zero overhead abstractions
Higher order, inline extension functions for (i in 0 until linearLayout.childCount) { val view = linearLayout.get(i) Timber.d(view.tag) } linearLayout.forEach { view -> Timber.d(view.tag) }
inline fun SQLiteDatabase.transaction(...): T { beginTransaction() try { val result = body() setTransactionSuccessful() return result } finally { endTransaction() } }
Explore Android KTX yourself and use it in your projects https://github.com/android/android-ktx/ https://android.github.io/android-ktx/core-ktx/ Write your own extensions for APIs that don’t fit your needs If these are on Android, consider submitting a PR to Android KTX