Replies: 1 comment 3 replies
|
같은 화면에 대해 ViewModel의 공유가 이해가 가지않습니다! 예를 들어) 메인 화면에서 최근 업데이트한 독서 기록을 눌러서 조회 화면으로 넘어갔다면, 다른 화면으로 이동 하기 위해서는 뒤로가기를 눌러야하니 이때 조회화면에서 나가면 해당 뷰모델이 소멸될거라 생각합니다 혹시 이런부분에서 말고 뷰모델이 공유가 되어야하는 부분이 있는건가요? |
3 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
배경
이 PR을 구현을 하다가 보니 고민이 생겼고, 이를 해결하기 위한 방안을 제시하기 위해 이 Discussion을 열었습니다. 초기에 구상한 구조는 아래와 같지만 아직 결정이 안난 사안이기 때문에 카톡방에서 얘기를 나눈대로 Onboarding 과 Main 두 개의 Coordinator로 통합해 두었습니다.
통합한 형태로 작업을 이어가다 보니 ViewModel 관리(생명주기)에 대한 구조적인 문제와 마주치게 되었습니다.
우리가 원하는 것
현재 문제
해결 방안
따라서, Feature 단위로 Coordinator를 나누는 해결방안을 제시합니다.
저희 앱에서는 다른 탭이지만 같은 화면으로 이동하는 로직들이 여러가지 있습니다. (홈화면 → 도서 정보 조회, 검색 → 도서 정보 조회 등등) 각 Coordinator가 Feature 단위로 ViewModel의 생명주기를 책임지고 관리하도록 하면, 공통 화면에서의 재사용성과 ViewModel의 일관성을 유지할 수 있을 것 같습니다.(+ Route 중복 해결)
이러한 구조를 적용하면, 해당 Flow가 유지되는 동안 ViewModel 인스턴스도 함께 유지되며, Flow가 종료되면 ViewModel 역시 자연스럽게 소멸되도록 관리할 수 있을 것 같습니다.
해당 의견에 대해서 자유롭게 달아주세요!
All reactions