この本を読みました.Androidやアーキテクチャ周りの知識があまりなくても読みやすく,凄くためになる本でした.
構成
本の構成は以下の三部構成になっていました.
- アプリの設計を知る
- 生きた設計を見る
- 設計を考える
以下で少し学んだ内容をまとめていきたいと思います.(もしかしたら間違った解釈をしている可能性があります)
1. アプリの設計を知る
MVVMパターン
MVVMパターンの概略図を図1に示します.
流れをざっくり文字化すると,
- Viewで何かしらactionがあったら,ViewModelを呼ぶ
- ViewModelはactionに対応した処理をModelに対して行う
- Modelは処理を実行した後,ViewModelに結果を返すか通知を返す
- ViewModelはその結果を受け取り,自身の状態を変更する
- Viewの状態はViewModelとbindされており,ViewModelが変更されるとViewも変更される
このアーキテクチャの特徴はViewModelからViewへの参照が無い点です.これによりView部分とLogic部分を切り離せています.
しかし参照がないことで苦しむ面もあります.本で取り上げられていた事例として,Snackbarの例がありました.前提として,ViewModelはViewの参照を持っていません.なのでViewModelからViewに対して,処理の完了通知を表示する処理を実行できません.そこで本では,Viewにcallbackを登録しておきViewModelの値が変わったら,ViewにSnackbarを出力するようにしていました.
なるほど.
MVPパターン
MVPパターンの概略図を図2に示します.
図2からわかるように,ViewとPresenterに参照があります.実際にはContractというインターフェースが,間にありますが省略しています.MVPはあんまり印象に残ってないのですが,PresenterがViewを触れるので,直接データをViewに送れます.
申し訳ない.
2. 生きた設計を見る
ここでは,どういったプロジェクトでアーキテクチャを使ったかなどの興味深い話が載っていました. 勉強になったこととしては,
Fluxは少し知っているつもりでしたが,改めて勉強になりました.
是非読んでみてください.
3. 設計を考える
Androidのライブラリが紹介されていました.
詳しくは本で
感想
MVVM,MVPを少し知ることができて嬉しかったです.Rxの理解がなかなか足りなくて,今後勉強しないとなぁとか思いました.