[#572] AccountView에 TCA를 적용한다#589
Merged
Merged
Conversation
Contributor
There was a problem hiding this comment.
Code Review
이번 PR은 기존의 AccountViewModel을 TCA 기반의 AccountFeature로 전환하고, CategoryManageFeature에 BindingReducer를 도입하여 상태 관리와 데이터 바인딩을 단순화했습니다. 리뷰 피드백으로는 ProfileViewCoordinator에서 뷰 재평가 시 Store가 매번 재생성되어 상태가 유실되는 문제를 방지하기 위해 스토어를 캐싱할 것과, CategoryManageView의 colorValue 게터에서 비결정론적인 .randomValue 대신 결정론적인 기본 색상을 사용하여 UI 플리커링을 방지할 것을 제안했습니다.
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.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
🔗 연관된 이슈
🎯 의도
AccountViewModel기반StorePattern에서 TCAAccountFeature기반 구조로 전환@Bindable로 보유하고, 화면 상태와 비동기 효과는 Feature에서 관리하는 형태로 정리📝 작업 내용
📌 요약
AccountFeature구현 및 상태 전이 테스트 추가AccountView를StoreOf<AccountFeature>주입 구조로 전환AccountViewModel제거CategoryManageSheet의 입력 상태를BindingReducer기반 binding action으로 정리🔍 상세
AccountViewModel.State의currentProvider,connectedProviders,disconnectedProviders,alert,isLoading상태를AccountFeature.State로 이전AccountFeatureTests로 검증AccountView에서@Bindable var store: StoreOf<AccountFeature>를 사용하도록 변경ProfileViewCoordinator에makeAccountStore()추가MainView,ProfileView의 account route에서AccountView(store:)주입CategoryManageFeature.CategorySheet를BindableAction으로 변경BindingReducer()와$storebinding으로 처리📸 영상 / 이미지 (Optional)