마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 MVP 패턴 관련 질문입니다.

0 추천

현재 프로젝트를 MVC에서 MVP로 리팩토링하고 있는중 입니다. MVP도 설계방법이 다양하다보니 헷갈리는 부분이 많은데요. 질문은 아래와 같습니다.

View 단에서 Action이 일어나면 Presenter단에 필요한 데이터를 요청합니다.

  1. 그러면 View 단에서 일어나는 Action의 범위를 어떻게 한정해야 할까요? 예를 들자면, 사용자가 직접 건드린 부분(클릭 리스너, 터치 리스너)만이 Action 일까요? 아니면 getIntent()와 같은 메서드를 호출하는 때에도 Action으로 구분해야 할까요? api를 사용해서 데이터를 가져오는 부분은 당연히 Action으로 간주해야겠죠?

Presenter단에서 View가 필요하다고 하는 데이터를 Model에 요청할 겁니다.

  1. 그러면 데이터 가공이 필요하다면(비즈니스 로직?) 이 행위는 Presenter단에서 처리하는게 맞겠죠? 왜냐하면 MVP의 큰 목적중 하나가 테스트 코드 작성을 위함인데, 비즈니스 로직?을 api와 상관없이 테스트 할 수 있어야 하기때문이라고 생각합니다. 

혹시 피드백을 주실 수 있다면 감사하겠습니다.

준버기 (1,160 포인트) 님이 2019년 1월 18일 질문

1개의 답변

+1 추천
 
채택된 답변
첫번째 질문같은 경우는 사실 어디까지가 view의 범위다! 라고 원칙으로 정해진게 사실 없습니다.

Presenter에서 실행하는 경우도 있고, Activity에서 프래그먼트 트랜잭션과 동시에 수행하는 경우도 있으며, 다른 곳에 위임하는 경우도 있습니다.

결국 명확한 기준이 제시되지않은 Case by case라는 거지요.

두번째같은 경우, google에서 제공한 todo-mvp 패턴을 참고해보세요.

https://github.com/googlesamples/android-architecture/tree/todo-mvp/
익명사용자 님이 2019년 1월 21일 답변
준버기님이 2019년 1월 22일 채택됨
...