해결된 질문
작성
·
178
0
강의를 수강하며 클린 아키텍쳐라는 개념을 처음 사용하다보니 미숙한 부분이 많다보니 질문이 많아지는 것 같습니다.^^;
페이지간 이동이 아닌,
하나의 페이지안에서 일부 위젯들만 변경되거나 노출/숨김되는 경우, 그러나 기능적으로는 분명한 차이가 있을 때, 뷰/뷰모델 작성은 어떻게 나누어서 하면 될까요?
간단한 예를 들어보면
같은 배경에서 중앙에 배치 되는 위젯들만 PageScroll 또는 숨김/노출되는 상황입니다.
첫 진입 -> 중앙에 시작 버튼 노출
시작버튼 클릭 시 -> 시작 버튼 숨김/ 중앙에 비디오 선택창 노출
비디오 선택 시 -> 비디오 선택창 숨김/비디오 플레이어 노출
비디오 종료 시 -> 비디오 플레이오 숨김/ 다시보기 버튼 노출
위젯의 배치로만 보았을 때는 1개의 view에 여러개의 component가 있는 형태이지만,
기능적으로 구분하면 시작/비디오선택/비디오플레이/다시하기 이런식으로 4개의 view로도 구분할 수 있는 것 같아보입니다.
강사님께서는 이럴 경우 어떤식으로 코드를 작성하시는지 궁금합니다.
답변 1
1
ViewModel 1개에서 기능 갯수만큼의 use case 를 주입받으면 될 것 같습니다.
또는
4개의 View라는 관점으로 접근하셔서 나누어도 됩니다.
클린한 코드에 절대적인 규칙은 없습니다. 제 강의 또한 하나의 가이드에 불과합니다.
만약 앱의 규모가 크다면 기능별로 모듈화하여 구조를 가져갈 수도 있습니다.
예를 들어 인증 기능과 프로필 기능을 가진 큰 앱은 다음과 같이 기능별로 구조를 나눌 수도 있습니다.