アプリ開発備忘録

PlayStationMobile、Android、UWPの開発備忘録

Android Studio 3.5からのDataBindingの進化、3.6からのViewBinding

Viewへのアクセス方法が進化していきます。

I/Oセッション

youtu.be

DataBinding

  • Annotation Processingの速度が20%向上
  • Incremental Annotation Processing
    android.databinding.incremental=true
    で増分コンパイルが有効化される。
  • XMLの即時反映
    XMLに追加するとコンパイルなしにフィールドが生成され、スムーズにViewにアクセスできるように。
  • リファクタリングのサポート
    コードを編集するとXMLにも反映されます。
  • コンパイルエラー表示の改善
    1000の大量のエラーを見ることになりましたが、DataBinding専用のエラーセクションができました。
    f:id:matsudamper:20190530065001p:plain

コードジャンプ

コードジャンプも進化しました。
今まではコードジャンプすると、自動生成されたコードに飛びましたが、
f:id:matsudamper:20190530065047p:plain

ちゃんとXMLに飛ぶようになりました。
f:id:matsudamper:20190530065101p:plain

Viewへの直接のジャンプもできます。 f:id:matsudamper:20190530065116p:plain

ViewBinding

今までは、エレガント、コンパイルタイムセーフ、ビルドスピードが早い、この3つを揃えたものがありませんでしたが、その3つが揃ったのがViewBindingになります。
f:id:matsudamper:20190530065329p:plain

DataBindingとの互換性があります。
ViewにアクセスするためだけにDataBindingを使用している場合、XMLから

<layout></layout>

を削除するだけですぐに移行できます。
Android Studio 3.6 Canary 1ではまだ使えないようなので、使い方を知っている人が居たら教えてください。

おわりに

kotlin syntheticは全てのレイアウトのidにアクセスできるし、idによく使う名前なんてつけた日にはややこしいことになるしで微妙でしたのでViewBindingには期待しています。まだViewBindingは使えないのでViewにアクセスするためだけにDataBindingを使いますが、それでも凄く早く、楽に開発できるようになりました。