Data Binding 3.5と3.6のまとめ/感想
Created at Thu, May 16, 2019Google I/O 2019でDataBindingについて少し話されていたので感想とまとめを。 動画だとここらへんになります。
改善系
ビルドの高速化!
- 20%くらいビルドが早くなった
- distributed build cache対応
- Incremental annotation processing対応
android.databinding.incremental=true
を設定にすると使えます
Android Studioとの連携強化!!
- Live Class Generation
- XMLを変更したら、コンパイルせずともクラス、フィールドにアクセスすることが出来る
- リファクタリング系
- フィールド名の変更リファクタリングなどをしたときに、XML、コードの両方に反映される
Errorメッセージの改善!!!
- DataBinding用のエラーセクションが出来たことで、どこでエラーが出たか特定しやすくなった
新規系
View Binding
簡易版Data Bindingのような立ち位置で、findViewByIdを省略 + コンパイルセーフ + コンパイルを高速にすることを目的に作られました。3.6で入るみたいです。
Data Bindingと比較したときの、メリット、デメリット以下になります。(ただし、まだalphaも出ていない段階なのでI/O動画から見る限りの感想です)
メリット
- コンパイルが早くなる
- Data Bindingより機能が少なくなるのでそれはそう
<layout>
で囲う必要がなくなった- これ個人的には好きでなかったので嬉しい。ネストが減る
デメリット
<data>
セクションがなくなる- モデルの値とViewのマッピングはコード側ですることになりそう
- 多分BindingAdapterは使えない
- これもコード側ですることになりそう
- 双方向バインディングとか使えない
おそらくなんですけど、Data Binding、View Bindingは1つにプロジェクトに混在させることが出来るので、基本View Bindingで、双方向使いたいときはData Bindingみたいな使い方も出来るはずです。
まとめ/感想
- 今、3.5-beta01を使っているんですが、肌感、かなり良くなっています😃
- Live Class Generation便利すぎワロリン
- View Bindingはとても良さそう
- Kotlin syntheticの代わりに使ってもよさそう