見出し画像

[Android] DataBinding-ktx 2.0.0 をリリースしました

追記:DataBinding-ktx 2.2.0 をリリースしました

・・・

DataBinding-ktx とは

DataBinding に関する問題を解決し、安全・簡単に利用するためのライブラリです。

DataBinding に関する問題

    1. Activity と Fragment で変数宣言の方法が異なる

Activity では by lazy を使えますが、
Fragment では BackStack や Attach/Detach を使う場合は View が再生成されるので by lazy(*) が使えません。
※: 再生成後の View に対して binding インスタンスが生成されないため

    2. setLifecycleOwner を呼び出し忘れる

LiveData を利用している場合、setLifecycleOwner を呼び出さないと LiveData が DataBinding されません。

DataBinding-ktx による解決

    1. Activity と Fragment で変数宣言の方法が異なる

Kotlin の Delegated Properties によって ActivityFragment で同じ書き方でプロパティを宣言することができます。

// Activity
val binding: MainActivityBinding by dataBinding(R.layout.main_activity)
// Fragment
val binding: MainFragmentBinding by dataBinding(R.layout.main_fragment)

    2. setLifecycleOwner を呼び出し忘れる

binding 変数に初回アクセス時に自動的に setLifecycleOwner が呼び出されているため呼び出し忘れがなくなります。

DataBinding-ktx の使い方

Activity

class MainActivity : AppCompatActivity() {
   private val binding: MainActivityBinding by dataBinding(R.layout.main_activity)
}

Fragment

class MainFragment : Fragment() {
   private val binding: MainFragmentBinding by dataBinding(R.layout.main_fragment)
}

build.gradle

repositories {
   maven { url "https://jitpack.io" }
}

dependencies {
   implementation 'com.github.wada811:DataBinding-ktx:x.y.z'
}

バージョンは README を参照してください。

ここから先は

0字

¥ 100

この記事が気に入ったらチップで応援してみませんか?