このアプリは、かつて専修大学で使用されていたポータルシステム(ActiveCampus)の、学生用Android OS向けクライアントアプリです。
ActiveCampusは、2020年3月まで使われていましたが、in Campusに移行されて廃止されました。現在、このアプリは使用できません。
ActiveCampusには、主に以下の機能がありました。
- 大学の各事務課から、学生にメッセージを配信する「お知らせ」機能
- メッセージごとに、学生の閲覧状況を把握するための「開封確認」機能
- メッセージごとの添付ファイル(複数)
- 履修登録した授業科目を参照し、時間割を表示する機能
- 履修登録した授業に対する教室の変更、または休講の内容を閲覧する機能
- ログイン情報の保存・自動ログイン機能
- 時間割取得・表示機能
- 「お知らせ」の閲覧機能
- ポータル側の分類に準じて、お知らせを「個人伝言」「お知らせ」「就職情報」の3つのタブに区別して表示
- 添付ファイルのダウンロード・自動オープン機能
- ToDo管理機能
- ToDoには、タイトル、期限、時間割取得機能によって取得した教科を設定できます。
- Android SDK (API Level 26)
- Jsoup 1.12.2 (HTTPクライアント+HTMLパーサライブラリ)
- Realm 2.0.0 ->10.15.1 (クラスベースDB)
ActiveCampusにはモバイル版が存在しましたが、私が頻繁にアクセスしたい情報(休講、教室の移動)へアクセスするまでの階層が深く、億劫に感じていました。そこで、スマートフォンアプリとして制作することにしました。
HTTP通信を行い、レスポンスとして返されたHTMLを解析してDOMツリーとして探索・取得できるライブラリJsoup
を使用して、ユーザーの操作を代替することとしました。
アプリ内にポータルのログイン情報を保持しておき、セッションが無効ならば再ログインし、有効ならば以前のセッションを利用するようにしました。
Googleが提唱するMateral Designに準拠した画面デザイン(ドロワーやナビゲーションバーなど)とすることにしました。
- ログイン機能(Cookieによるセッション維持機能)の実装では、ログインしたときに設定されたセッションIDが、次のリクエストのレスポンスによって上書き削除されてしまったり、セッションタイムアウトによってログアウトされてしまう問題の修正に時間を要しました。
- レスポンシブレイアウト機能であるConstraintLayoutやRecyclerView、多言語対応など、Android SDKの機能を積極的に活用しながら制作を進めていきました。