USP Browser 開発日誌 データフロー

どうも、初めましてNです。USP Browser 開発日誌です。
USP Browser (以下、専ブラ)はスマホで見づらい学生ポータルを、
見やすくしようという目的で絶賛開発前の Android アプリです。
会のブログに載せてますけど、まだ会でやると決まったわけでは…(-_-;)。

プログラミングにおいて、きれいなコードにを書く秘訣には、
UIとロジックの分離というものがありますが、
代表的な考え方として MVC (Model View Controller) というものがあります。
扱うデータを保管し、操作する Model と、その Model を表示する担当の View、
そして、View での操作によって画面を切り替えたり、Model に指令を送る Controller です。

Android でいうと View は xml で記述するレイアウトファイル、
Controller は Activity や Fragment を継承したクラス、
Model はアプリが実際に行う処理を組み込んだクラスでとなります。
Model の中には、単なるクラスだけではなく、
Android の便利な機能である、ContentProvider や、Service[1] 等を含めてもいいと思います。

詳細は Google 先生Wikipedia 先生にお任せするとして、
専ブラではどのような実装を行うか、考えたいと思います。

専ブラで行われる一連の動作は次の通りです。

  1. 更新ボタンが押されたことを検出
  2. 学生ポータルから情報を取得
  3. 取得した内容を解析
  4. 解析した内容をデータベースに保存
  5. データベースの内容を表示

また、実際には次の動作も行います。

  1. アプリ起動時に取得を実行
  2. 定期的に取得を実行
  3. URL からアプリを起動

大体でいうと、 1. は Controller の仕事、2. ~ 4. は Model の仕事、5. は View の仕事です。
6. 7. は Controller に、7. は AlarmManager を用いて Android システムにやってもらいます。
8. は AndroidManifest.xml で設定しておくことで、特にコーディングせずに実装できます。

というわけで、次の図のような感じでの実装を考えました。
かなり省いていますが、概略としてはこんな感じで実装されていくはずです。
PortalProvider は ContentProvider、PortalService は Service を継承しており、
Model として、学生ポータルからの情報の取得と解析、保存を行います。
この図に載っている Activity クラスや View のレイアウトファイルはメイン画面のものだけで、
設定画面に PreferenceActivity、ログオン画面に LogonActivity 等が実装される予定です。
20130118 USP Browser Dataflow

久しぶりに Visio を使って図を書きましたが、便利ですねぇこれ。
テンプレートも多いし、最初手で書こうと思っていたのが莫迦らしくなります。
これだけ書けば、専ブラ開発を放り出すこともなくなるかも?
開発はおそらく非常に長くなると思いますが…。

[1] Android 用の MVC フレームワークである Android-MVC では、
Service は Controller に含まれていますし、もしかしたら Service は Controller かもです。

  1. コメント 0

  1. トラックバック 0

return top