[Android]思考停止で使っていたAndroid Architecture Componentのメリットを少し掘り下げる


取り敢えず使っていたけども

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の結果を返すこともできます。

終わり

気づき次第追加していきます!