Repository

Repository 정의는 Memory cache를 할 수 있으며, Remote/Local 데이터를 불러오게 된다. SQLite 사용 시에는 Loaders 사용으로 비동기식 데이터를 쉽게 로드할 수 있는 방법을 사용하고, RxJava 등의 방법을 사용할 수 있다. [이 경우는 이번 글에서 다루지 않는다.]

변경할 Repository 형태는 구글이 설명하는 다음의 방법이다.

배운 점

Model을 생성해서 Presenter에서 Repository에 데이터를 요청하고 Repository는 Remote / Local DataSource로부터 데이터를 받아서 Repository에게 넘기고 받은 것을 다시 Presenter에 넘겨서 처리하고 있다.

MVP를 처음 배울 때는 '별 거 아니네’라고 생각했다. 하지만, 리싸이클러뷰가 들어있는 하나의 화면을 작성하는데 파일은 많아지고 인터페이스 선언도 많아진다. 그러면서 상속을 받고 이곳 저곳을 왔다 갔다 한다. 너무 복잡스럽다고 생각했지만, 프로젝트의 규모가 조금 커지면 유지 보수에 훨씬 쉬울 것이라는 생각이 들었다. 인터페이스 부분만 수정하고 이를 구현하는 함수만 수정하면 되기 때문이다.

그렇지만 아직 테스트 코드에 용이하다는 것은 직접 해보지 않아서 잘 모르겠다. 부캠하면서 배운다면 조금 더 알 수 있지 않을까 하는 기대를 걸어본다.

참고