3단계(Repository Pattern(+ DI, CleanArchitecture)) 마감일: ∼01/05 23:59
기능 요구 사항
- 현재 사용중인 User 리스트와 새로 추가된 더미데이터 리스트를 합쳐서 보여준다.
- 패키지 구분을 통해 ‘ui’ 레이어와 ‘data’ 레이어를 분리해본다.
도전 요구 사항
DI 맛보기
뷰모델 인스턴스를 생성하기 위해 필요한 레포지터리의 구현체들을 매번 뷰모델에서 생성해주고 있다.
- 레포지터리를 교체하기 위해 ViewModel에 직접적인 변경사항이 발생한다.
- 홈 뷰, 팔로워 상세보기 뷰에 접근 할 때마다 매번 레포지터리 인스턴스를 새로 만들고 있다.
- 다음 문제점들을 해결해본다(이 외에 어떤 문제점들이 발생할지도 고민해본다).
클린아키텍처 맛보기
- ‘domain’ 레이어를 분리해본다.
- 두 리스트를 합치는 로직을 유즈케이스로 분리해본다.
- 해당 유즈케이스는 그 어떤 레이어도 알아선 안된다.
- ui, data 에 대한 import 문이 없어야한다.
프로그래밍 요구 사항
요구 사항 힌트
- ReqresApi와 InMemoryMembersDao를 추상화한다.