開発Tips

よく書く処理をまとめた Kotlin Extension ライブラリ common-ktx を作った

フル Kotlin での Android 開発を続けるうちに、ktx や Extension の「よく書く処理」が貯まってきたので、ライブラリにまとめました。

common-ktx です(名前へのツッコミは受け付けていません)。

どんな内容?

よくある実装を Extension として用意しています。いくつか例を挙げます。

ダブルクリック防止のクリックリスナー

button.setOnSingleClickListener {
    // 連打しても一度しか呼ばれない
}

SharedPreferences の値を型安全に扱う(委譲プロパティで実装)

val pref = Preferences(this)
val isFirstLaunch: Boolean = pref.isFirstLaunch

ランタイムパーミッションのチェック

if (hasPermission(arrayListOf(
        Manifest.permission.WRITE_EXTERNAL_STORAGE,
        Manifest.permission.READ_EXTERNAL_STORAGE
    ))) {
    // 許可済み
} else {
    // request permission
}

お決まりの処理をサクッと呼び出したいときに便利です。

導入方法

JitPack 経由で導入できます。

allprojects {
    repositories {
        google()
        // ※ 当時は jcenter を利用。jcenter は終了済みのため、現在は mavenCentral() を使ってください
        maven { url 'https://jitpack.io' }
    }
}
dependencies {
    implementation "com.github.sasa-nori:common-ktx:$latestVersion"
}

最新バージョンは JitPack のページ を参照してください。

内部で導入している各種 ktx ライブラリは implementation ではなく api で宣言しているので、利用側でも同じバージョンをそのまま使えるようにしています。対応は Android 6.0(minSdkVersion 23)以上です。国内外どちらでも使えるよう、Locale 依存は極力入れず、README も英語で書いています。

今後

思いついたら更新していく方針ですが、issue や PR は歓迎です。ブランチ運用は git flow で、develop への feature ブランチ PR で Danger が走り、Lint エラーが残っているとマージしない構成にしています。

Kotlin プロジェクトでの「あると便利」を目指しているので、よければ common-ktx をのぞいてみてください。