今更ながらGitHubにあるAndroid Best Practiceに、いろいろ学んで見る。 - futurice/android-best-practices · GitHub
手がつけやすいとこからやっているので、順序はてきとー。
その備忘録
参考にした偉大なるサイト様
- Android Best Practices のディレクトリ構成を作れるテンプレート作った - tomoima525's blog
- [翻訳] android best practice - Qiita
- Android Best Practiceを簡単に使う方法 - 上澄み20%
ディレクトリ構成編
ディレクトリ構成関連については、2つある。 1. プロジェクトのディレクトリ構成 1. パッケージのディレクトリ構成
プロジェクトのディレクトリ構成
Practiceな構成は以下な感じ。Gradle & Android Studioの構成。
new-structure ├─ library-foobar ├─ app │ ├─ libs │ ├─ src │ │ ├─ androidTest │ │ │ └─ java │ │ │ └─ com/futurice/project │ │ └─ main │ │ ├─ java │ │ │ └─ com/futurice/project │ │ ├─ res │ │ └─ AndroidManifest.xml │ ├─ build.gradle │ └─ proguard-rules.pro ├─ build.gradle └─ settings.gradle
AndroidStudioで自動的に作られるものと同等だが、個人的な気付きは以下の2つ
- 該当するアプリケーションは
app
とする - 内部のライブラリは、
library-*<foobar>*
と接頭語にlibrary-
で命名する
パッケージのディレクトリ構成
Practiceな構成は以下な感じ。MVCのコンセプトに基づいたディレクトリ構成。
個人的には、tomoima525's blogさんのアレンジも好きなので取り込んだ結果こうなった
com.futurice.project ├─ activities ├─ networks ├─ models │ ├─ prefs │ ├─ db │ ├─ apis │ └─ provider ├─ managers ├─ utils ├─ services ├─ fragments ├─ views │ ├─ adapters │ ├─ actionbar │ ├─ widgets │ └─ notifications └── Application.java
dir/file | description |
---|---|
activities | Activityクラスのパッケージ |
networks | バックエンドとインタラクティブに反応するクラスのパッケージ |
models | MVCのModel的クラスを配置。prefs,db,apis,providerなど、元情報ごとにサブディレクトリがある |
managers | アプリ内で多様に使われAndroidシステムに密接なコントローラクラス |
utils | お馴染みのUtilクラスのパッケージ |
services | Serviceクラスのパッケージ |
fragments | Fragmentクラスのパッケージ |
views | Viewクラスのパッケージ。カスタムViewやViewをつなぐadapterなどもサブパッケージに分けて配置 |
Appication.java | TopのActivityクラス。複数ある場合は、それ以外をactivityパッケージに配置 |
自分のアプリや思想に合わせて、もう少しチューニングできそうだけど、まずはこんな感じで!
MVPやDDDとか、MVC以外の概念のほうがうまく行きそうとかもあるので、そっちも見てみたい。。。 - AndroidではMVCよりMVPの方がいいかもしれない - Konifar's WIP - An MVP Pattern for Androidを訳してみた - ナカザンドットネット - DDD - MVCの流れを簡単にまとめてみる - Qiita
とりあえず、今回はここまで!以上!