Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Android Architecture

チーム共有用です

Related Books

Free with a 30 day trial from Scribd

See all
  • Login to see the comments

Android Architecture

  1. 1. 設計
  2. 2. こんな感じで考えています
  3. 3. 全体像
  4. 4. View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory Provider Prefs Api SQLite Presentation層
  5. 5. DDD + MVP
  6. 6. なぜDDDか?
  7. 7. ドメインロジックを 綺麗にプレゼンテーション層 と分けることができそうだっ たから
  8. 8. なぜMVPか?
  9. 9. ActivityとFragmentをViewと して扱えるから
  10. 10. ドメイン層 プレゼンテーション層 Controller Model View タッチなどのイベント Activityが この位置に居るので Model関連の処理を Activityに書く事になる Model View Controller Activity
  11. 11. ドメイン層 プレゼンテーション層 Presenter Model View タッチなどのイベント Activityが この位置に居るので Modelと疎になり 書くべき事が減る 移譲 Model View Presenter Activity
  12. 12. View、Activity、Fragment
  13. 13. View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory Provider Prefs Api SQLite Presentation層
  14. 14. 役割 • Viewの描画 • (イベントをPresenterに譲渡)
  15. 15. Presenter
  16. 16. View Activity Fragment View層 Application層 Domain層 Infra層 Presenter Service UseCase Entity ValueObject Repository Memory Provider Prefs Api SQLite Presentation層
  17. 17. 役割 • ドメイン層への伝達、Viewへの伝達
  18. 18. View Activity Fragment View層 Application層 Domain層 Presenter Service UseCase Entity ValueObject Presentation層 イベント 問い合わせ
  19. 19. View Activity Fragment View層 Application層 Domain層 Presenter Service UseCase Entity ValueObject Presentation層 結果通知 (非同期の時はEventBus) 結果をもとに Viewへの反映依頼
  20. 20. UseCase
  21. 21. 役割 • ドメインロジック
  22. 22. Repository
  23. 23. 役割 • データの管理(CRUD)
  24. 24. ポイント
  25. 25. 上の層のインスタンスは持てない Domain層 Infra層 Presenter UseCase Repository Presentation層 OK OK NG NG ❌ ❌ それをやると破綻する
  26. 26. 実際には下の層のinterfaceを参照する Domain層 Infra層 Presenter UseCaseImpl RepositoryImpl Presentation層 <Repository> <UseCase> 依存性をできる限りなくすため。あとテストしやすい。
  27. 27. 参考になる
  28. 28. http://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/ Android Clean Architecture The Clean Architecture http://blog.8thlight.com/uncle-bob/2012/08/13/the-clean-architecture.html Androidの設計について 綺麗な設計について GUI Architecture http://martinfowler.com/eaaDev/uiArchs.html Martinさんのいろんな設計手法について。MVCとかMVPとか。 http://terasolunaorg.github.io/guideline/5.0.0.RELEASE/ja/ ImplementationAtEachLayer/DomainLayer.html ドメイン層の実装 あるFrameworkのどドメイン層の実装方法。 DDDちっくですごく勉強になる。

×