Androidアプリの開発をやったことがないが、Androidのアーキテクチャについて調べてみた
Android アプリも例に漏れずサイズが大きくなるにつれきちんと関心が分離されたアーキテクチャを定義することが重要になる
ドキュメントによると Android アプリは原則 UI をデータモデルで操作する方針で設計を行うとある
アプリの推奨アーキテクチャ
ドキュメントをそのまま引用すると、各アプリに少なくとも 2 つのレイヤが必要
- 画面にアプリデータを表示する UI レイヤ
- アプリのビジネス ロジックを含み、アプリデータを公開するデータレイヤ
さらにドメインレイヤというレイヤを追加することで、UI レイヤとデータレイヤの間のやり取りを簡素化でき、再利用できる
簡単に
- UI レイヤ(またはプレゼンテーション レイヤ)の役割は、アプリデータを画面に表示すること
次のようなステップを実行する必要がある - データレイヤは、それぞれが 0 から多数のデータソースを含むことができるリポジトリで構成されている
リポジトリ クラスは、次のタスクを行う- アプリの他の部分にデータを公開する
- データの変更を一元管理する
- 複数のデータソース間の競合を解決する
- アプリの他の部分からデータソースを抽象化する
- ビジネス ロジックを格納する
- ドメインレイヤは複雑なビジネス ロジック、または複数の ViewModel で再利用される単純なビジネス ロジックをカプセル化する
通常、このレイヤのクラスを「ユースケース」または「インタラクタ」と呼ぶ
iOSのVIPERよりレイヤーが少ない印象だが実際これでうまくやれているのか?はわからないが、Androidアプリ作る時に参考にしようと思う