1. HOME
  2. ブログ
  3. IT技術
  4. 【Android】備忘録その1(LiveData)
【Android】備忘録その1(LiveData)

【Android】備忘録その1(LiveData)

LiveDataの値がDataBindingのLayoutに反映されない

Androidの勉強や実装中に気づいたこと忘れそうなことを自分用の備忘録として残していきたい。

初回はLiveDataを使うときに毎回忘れてしまって時間を無駄にすることを残しておく。

だいたいLifecycleOwnerの設定忘れている。

新規画面実装でよく忘れる。

LiveDataの型と初期値は意識したほうがいい

気にしていないとハマる。

LiveDataの初期値はなるべく設定しておいたほうが不具合入り込みにくい気がする。

よくやってしまうのが処理結果をLiveDataで保持する場合↓ような持ち方をしてしまう。

これだと初期値の設定がしづらい。

初期値の設定がなくても実装できるが、画面のリセットがある実装やMediatorLiveData発火元の(addSoruceに追加する)LiveDataにする場合に、どうしても無理をした実装になってしまう。

また、「DroidKaigi2020アプリのcombine」を使う場合も、初期値があったほうが都合がいいことが多い(初期値がないとblockが実行されない実装になっているので)

解決方法は「ありえる状態をすべて表せるようにする」

以下のようなクラスをつくりラッピングして持つと扱いやすい。

(「Status」という名前でいいのかなぁ…もっといい名前ないかなという問題は残っている)

↑のように初期値を表現できて、使いやすくて分かりやすいのでよき

他の解決策も一応ある

型をnullableにするのもアリですが場合によるかなぁと。nullが何を示しているか分かりづらいときもあるので、ラッピングする選択肢があることを忘れたくはない。

関連記事

採用情報

\ あの有名サービスに参画!? /

バックエンドエンジニア

\ クリエイティブの最前線 /

フロントエンドエンジニア

\ 世界を変える…! /

Androidエンジニア

\ みんなが使うアプリを創る /

iOSエンジニア