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.

Model View Presenter for Android

6,672 views

Published on

Model View Presenter for Android

Published in: Engineering
  • Be the first to comment

Model View Presenter for Android

  1. 1. Model View Presenter for Android
  2. 2. 自己紹介
  3. 3. 釘宮 愼之介 / @kgmyshin 自己紹介 ・ Androidエンジニア ! 福岡県出身 ! 5月からフリーランスか転職か 勉強会(ダンジョン)に出会いを求めるのは間違っているだろうか
  4. 4. ところで、 特に去年くらいから MVPって 聞きませんか?
  5. 5. そもそもMVPとは?
  6. 6. 基本的にはMVCなんだけど、 違いとしては Viewがユーザからのイベントを 一切処理せずに 全てPresenterに移譲して ModelにはPresenterからアクセスする というのがある
  7. 7. ドメイン層 プレゼンテーション層 Presenter Model View タッチなどのイベント 移譲 然るべき Modelのinterfaceをcall ModelからのfeedbackはObserverPatterを用いて、View or Presenterへ通知するか 呼び出したPresenterにCallbackで返却するかのどちらでも良いと思う。 セオリーは前者だけど、githubのソースとか見ると後者の方が多い感じ。 return return値をもとに Viewを操作
  8. 8. なぜ今 MVPなのか?
  9. 9. AndroidでMVCを 適用する際の問題点
  10. 10. Activity (Fragment)を Controllerか Viewか 奇麗に分けきれない
  11. 11. ControllerなのかViewなのかで たまに言い争ってるのを みかけることもしばしば。
  12. 12. android best practicesでも activityとfragmentって Controllerでもあるし Viewでもあるよねって言ってる。 https://github.com/futurice/android-best-practices
  13. 13. 多重責務
  14. 14. でも MVPで設計すれば この問題は解消される
  15. 15. なぜなら、 Activityから Controller足り得る要素を 完全に抜き取って Viewにすることができるから
  16. 16. ドメイン層 プレゼンテーション層 Controller Model View タッチなどのイベント Activityが この位置に居るので Model関連の処理を Activityに書く事になる Model View Controller Activity
  17. 17. ドメイン層 プレゼンテーション層 Presenter Model View タッチなどのイベント Activityが この位置に居るので Modelと疎になり 書くべき事が減る 移譲 Model View Presenter Activity
  18. 18. MVPを用いる事で Activity(Fragment)は 明確にViewになる まとめ ・ ・ その結果、Activityが煩雑に なりづらくなる

×