[#582] RootView에 TCA를 적용한다#623
Conversation
There was a problem hiding this comment.
Code Review
이번 풀이 리퀘스트는 기존 RootViewModel 기반의 상태 관리를 Composable Architecture(TCA)인 RootFeature로 리팩터링하고, 이에 맞춰 RootView 및 관련 단위 테스트를 업데이트하였습니다. 리뷰 피드백으로는 백그라운드 스레드에서 방출될 수 있는 네트워크, 세션, 테마 관찰 스트림에 .receive(on: DispatchQueue.main)을 추가하여 메인 스레드에서의 안전한 UI 업데이트를 보장할 것과, didLogined(true) 호출 시 기존 탭 선택이 원치 않게 초기화되는 현상을 방지하기 위해 상태 전환 조건을 추가할 것을 제안합니다. 또한, 비옵셔널 타입인 trackAnalyticsEventUseCase에 사용된 불필요한 옵셔널 체이닝을 제거하여 코드를 정리할 것을 권장합니다.
Important
The consumer version of Gemini Code Assist on GitHub is being sunset. Starting June 18, 2026, new organization installations will be blocked, and all code review activity will officially cease on July 17, 2026.
For more details on the timeline and next steps, please review the Help Documentation.
🔗 연관된 이슈
🔗 연관된 이슈
🎯 의도
RootView에 TCA를 적용하면서 기존 상태 변화를 유지한 채RootFeature중심으로 상태와 액션을 정리📝 작업 내용
📌 요약
RootViewModel없이도 기존 상태 관리와 동일한 흐름을 검증할 수 있도록RootFeature테스트 추가RootFeature에AlertState,SheetState,selectedMainTab상태 반영selectedMainTab바인딩을BindingAction기반으로 전환view/store액션 분리 제거 후 단일Action으로 평탄화RootView의 sheet 구성을sheetContent로 분리🔍 상세
RootFeature.State에alert,sheet,selectedMainTab추가RootFeature상태로 직접 반영selectedMainTab을.home으로 복구하는 흐름 반영selectedMainTab변경 여부를 store에서 관리MainView의selectedTab을$store.selectedMainTab으로 연결RootStoreTestAdapter와RootFeatureTests를 추가해 기존 상태 변화 parity 검증didLogined(true), widget route, alert 표시/해제, theme 반영, sheet 표시/해제, 초기 observe 반영 케이스 검증RootView의 sheet body를sheetContent(todoId:onClose:)로 분리해 뷰 본문 가독성 정리📸 영상 / 이미지 (Optional)