-
Notifications
You must be signed in to change notification settings - Fork 1
재사용 단위를 무엇으로 봐야할까? 재사용 전략?
이강호 edited this page Jul 3, 2024
·
2 revisions
- 컴포넌트
- View
- VC
- VC + VM
- Coordinator
컴포넌트는 같지만 다른 화면
- 닉네임 입력화면과 번호입력화면
뷰는 같지만, 다른 로직을 수행하거나, 추가된 로직이 있음
- Chat의 프로필화면과 Like의 프로필화면. Like 프로필화면은 좋아요/싫어요 뷰 및 기능이 추가됨
VC까지 같지만 VM의 Logic이 다를 때 기존 MVVM + Input/Ouput 패턴을 이용해서 VM의 재사용이 힘듦었음. 해당 VM의 Input/Output 정의를 protocol화하면 해결해 볼 수도 있을 것 같음.
Pros
- 재사용되는 페이지에 대한 Coordinator를 만들 필요가 없어서 boiler plate코드에 대한 부담이 줄어듦
- Coordinator에 대한 depth가 줄어들기 때문에 복잡도가 줄어듦
- 네비게이션 스택 관리 편함
Cons
- ViewModel에 대한 Input/Ouput 프로토콜화가 선행되어야함
- Factory로 생성 코드 boiler plate 만들어짐
예시
LikeCoordinator
ㄴ HomeFlow
ㄴ ChatRoomFlow
ㄴ ProfileFlow
ㄴ BlockAlert
ㄴ ReportAlert
Pros
- Factory 생성 코드 필요 없음.
- 구조 변경할 일이 줄어듦.
- Coordinator 책임이 적음.
Cons
- 재사용되는 화면마다 Coordinator로 Wrapping 해줘야함, boiler palte 코드 증가
- Coordinator 뎁스로 인해서 복잡도 증가
- coordinator, buildable property 들고있어야함
예시
LikeCoordinator
ㄴ ChatRoomCoordinator
ㄴ HomeFlow
ㄴ ProfileFlow
ㄴ AlertCoordinator
ㄴ BlockAlert
ㄴ ReportAlert
Alert같은 거만 Factory 이용해서 뎁스 줄이기
해당 페이지가 2모듈 이상 필요한 경우 따로 독립된 코디네이터를 만든다.