androidアプリのアーキテクチャのイメージ

去年から挑戦しているandroidアプリの開発。
そこで得た知識を書き溜めたいと思います。
いつか完成できれば良いな~。

参考書から始めましたが、最終的にAndroid Developer(https://developer.android.com/?hl=ja)の記事で学ぶのが一番だと感じました。
今回は推奨されるアーキテクチャ(出典:https://developer.android.com/jetpack/guide?hl=ja#drive-ui-from-model)についてです。下図です。

一番上が画面です。
その下が画面で扱うデータを提供するViewModelです。
その下がデータを取得するための処理をハンドリングするRepositoryです。
その下の左側がローカルにあるDBからデータを取得するModelです。
その右側がサーバーと通信をしてデータを取得するオブジェクトです。

もっとも重要なことは「感心の分離」とのこと。
サイトに詳細が書かれています。
要は「1つのオブジェクトで色々やるな。役割分担してそれ以上のことはさせるな。」という風に理解しています。

私のモットーは「理解が及ばなくても、まずは頭の良い人たちが言ってることを素直に実践してみる。」です。
やればわかるさ。多分。

ということで、今後はこのアーキテクチャの階層毎に具体的なソースコードとその解説を記事にしていけたらなと思います。