Qiitaの記事一覧を表示し、記事名をタップすると詳細画面に遷移するAndroidサンプルアプリ。
- 大規模なアプリ開発を想定した設計であること
- 2画面以上の構成であること
- 何かしらの非同期通信を含むこと
- 非同期通信の結果により画面上の表示が変更されること
当リポジトリの設計は、 MVPの設計とClean Architectureを組み合わせた設計を採用。 以後、この設計を「MVP-Clean」アーキテクチャと表記する。
要件であるように「大規模開発」を想定していることや、Android特有の課題を解決することを踏まえ、以下のポイントからMVP-Cleanを採用している。
- 役割の明確な分離: Viewやビジネスロジック、データリポジトリを明確に分離し、大規模開発をしやすくする。
- テストコードの書きやすさ: 明確な役割分離からテストコードの記述がしやすくなる。
- Activityの肥大化の防止: Activityのコード記述が増え肥大化することを防止する。
- **の統一: 知名度の高いCleanアーキテクチャをベースにすることにより、複数開発におけるエンジニアごとの**にに統一性を持たせる。
MVPとClean Archtectureを組み合わせて作成されたGoogleのサンプルコードを参考にしている。
Presenter、Usecase、RepositoryへのコールバックにはEventBusを利用。RxJavaを利用したケースが多いが、コードが少量になる点やルールが簡潔であることから、今回はEventBusを利用している。
記事一覧画面 | 記事詳細画面 |
---|---|
![]() |
![]() |
- 大規模なアプリ開発を想定した設計であること: MVP-Cleanの設計を採用
- 2画面以上の構成: Qiitaの記事一覧(Android関連)を1画面目に表示し、記事名をタップすると本文を表示する画面に遷移。
- 何かしらの非同期通信: Qiitaの記事取得APIと通信を行う。
- 非同期通信の結果により画面上の表示が変更: QiitaのAPIから取得した結果をListViewへ反映。
-
- 当リポジトリをCloneする
-
- Android Studio を起動
-
- 「Open an existing Android Studio project」からクローンしたプロジェクトを起動
-
- ビルドが自動で始まらない場合は「Build」->「Rebuild」する
-
- 「Run」->「Run app」からのエミューレータもしくは実機で動作確認
開発環境: Android Studio 3.1.4 / 対応Androidバージョン: Android4.4以降