取り敢えず使っていたけども
Google様が推奨しているから何となく使っていたMVVMを改めてメリットについてまとめていきたいと思います。
Android Architecture Componentとは?
可読性とか保守性とかの観点でいい感じのアプリが作れるように、Googleが出してくれているライブラリ達の事です。
通称MVVMですが、正式名称ではないです。
まぁ、見た感じMVVMなのでそれで通りますがね。
メリット一覧
- ライフサイクルを管理している
Androidのオブジェクトは、ライフサイクルという複雑な経過を辿ります。
その為、何も考えずに使っているとメモリリークが起きてしまします。
使ってないViewがずっと残り続けるなどですね。
これは、実際手動でもどうにかなるのですが、やはり自動化したいですよね。
そこで、LiveDataやViewModel等はViewのライフサイクルを独自に意識してインスタンス化されるので、Viewが破棄されるとそれに対応しているそれらも破棄されメモリリークを回避してくれます。
- 責務を跨いでLiveDataでデータを扱うことができる
Roomでデータを保存したり、そこから取り出したりすることがあると思うのですが、その取得する際にLiveDataで返すこともできます。
View-ViewModel間のデータの保持では、LiveDataを用いるかと思うのですが、そのために普通だとどこかでパースしたりする処理が入ると思うのですが、Roomを用いるとそこをLiveDataで返すことができ、データの扱いが簡易的になります。
また、Repository層でLiveDataでAPIの結果を返すこともできます。
終わり
気づき次第追加していきます!