Androidアプリケーションは、画面主体で、データはネットワーク越しにあることが多いので、その設計は従来のクライアント/サーバー・アーキテクチャにおけるクライアント側アプリケーションと類似点があるように見えますが、そこからいくつかの発展が必要です。
データの更新(とそれに伴う表示の更新)は、クライアント側からのトリガー(画面で検索や登録操作をしたらサーバーへ要求を送ってその応答をもって画面を更新)だけでなく、メッセージの着信的なサーバー側からのトリガー(サーバー側でデータの更新が発生し、それをクライアントに通知して画面を更新)もあります。
オフラインでもアプリケーションを起動して限定された機能を果たすこともあります。その場合、データをクライアント側に持っておく必要があります。
アプリケーション(プロセス)は、常時実行し続けているのではなく、ActivityやServiceは落ちていることがあるので、それを考慮した設計が必要です。
これをもとにいろいろ調べ始めてみます。
【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)
AndroidにおけるMVC構造の分かりやすい説明、肥大化するFragmentへの対応などが紹介されています。
MVCではEventBusの導入を推奨しています。
MVCについて分かりやすい説明があります。こちらもEventBusを使っていますね。状態遷移設計とそのツールについても紹介があります。
iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い
上述の資料と同じ方の続編、MVCのモデルについて詳しく掘り下げています。
続きは随時追記。。。