torutkのブログ

ソフトウェア・エンジニアのブログ

アプリケーション設計のやり方を調べはじめる

Androidアプリケーションは、画面主体で、データはネットワーク越しにあることが多いので、その設計は従来のクライアント/サーバー・アーキテクチャにおけるクライアント側アプリケーションと類似点があるように見えますが、そこからいくつかの発展が必要です。

データの更新(とそれに伴う表示の更新)は、クライアント側からのトリガー(画面で検索や登録操作をしたらサーバーへ要求を送ってその応答をもって画面を更新)だけでなく、メッセージの着信的なサーバー側からのトリガー(サーバー側でデータの更新が発生し、それをクライアントに通知して画面を更新)もあります。

オフラインでもアプリケーションを起動して限定された機能を果たすこともあります。その場合、データをクライアント側に持っておく必要があります。

アプリケーション(プロセス)は、常時実行し続けているのではなく、ActivityやServiceは落ちていることがあるので、それを考慮した設計が必要です。

これをもとにいろいろ調べ始めてみます。

【DroidKaigi2015】初学者に嬉しいAndroid開発環境(あとMVCとか)

AndroidにおけるMVC構造の分かりやすい説明、肥大化するFragmentへの対応などが紹介されています。
MVCではEventBusの導入を推奨しています。

IOS/Androidアプリの3つの大事な設計方針

MVCについて分かりやすい説明があります。こちらもEventBusを使っていますね。状態遷移設計とそのツールについても紹介があります。

iOS/Androidアプリエンジニアが理解すべき「Model」の振る舞い

上述の資料と同じ方の続編、MVCのモデルについて詳しく掘り下げています。

続きは随時追記。。。