LiveDataをDataBindingさせるサンプルを作った話

3行まとめ

  • LiveDataをBindさせるサンプル作った
  • Dagger使ってDIもやってみた
  • ListAdapterのアニメーションがめっちゃいい

つくったもの

文字を自分で打ち込んでDBに保存し、保存された文字列をフィルタリングするサンプルです。

f:id:D_R_1009:20180920165005g:plain

github.com

やっていること

  • 内部DBにRoomを利用、取得結果をLiveDataで書き出し
    • 依存性の解決はDagger2を使用
  • MainActivityからViewModelにDB処理を分割
  • MainActivityのlayoutにViewModelをbindし、上部のEditText部に双方向Bind
    • bindしたLiveDataの文字列を確認し、Transformations.switchMapにて「全読み込み」と「文字列が一致するモノだけ読み込み」を切り替え
  • 文字入力用のDialogにViewModelを渡すことで、Dialogからも処理をViewModelに分割
気をつけたこと
  • 簡単なサンプルにするため、DBの削除処理や細かいViewModelの分割はナシ
  • Dagger2の利用はGoogle IO18のコードを参考に

雑記

  • 体感で1週間ぐらいかかった
  • やりたいことが簡単なのに、色々と設定するのが億劫
  • READMEって何を書けばいいんでしょうな……?