Skip to content

[#581] MainView에 TCA를 적용한다#618

Merged
opficdev merged 9 commits into
developfrom
refactor/#581-MainView-TCA
Jun 16, 2026
Merged

[#581] MainView에 TCA를 적용한다#618
opficdev merged 9 commits into
developfrom
refactor/#581-MainView-TCA

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

MainView의 기존 ViewModel 기반 상태 관리를 TCA Store 기반 상태 관리로 전환

📝 작업 내용

📌 요약

  • MainView 상태 관리를 담당하는 MainFeature 추가
  • MainView의 unread push badge, analytics tracking, alert 상태를 Store 기반으로 전환
  • MainViewCoordinator 제거 후 Store를 MainView에 귀속
  • 기존 ViewModel과 동일한 상태 변화를 검증하는 MainFeatureTests 추가

🔍 상세

  • MainFeature에서 unread push count 관찰, tab 변경 analytics tracking, AlertState 기반 alert 상태 처리 구현
  • unread push count 변경 시 tab/sidebar badge 표시와 app badge count 갱신 effect 처리
  • MainView에서 직접 Store를 생성하고 @State로 소유하도록 변경
  • 기존 MainViewCoordinator가 담당하던 Store/ViewModel 소유 책임 제거
  • ViewModel 제거 이후에도 상태 변화 parity를 검증할 수 있도록 독립 reference state management 기반 테스트 추가
  • TCA TestStore로 onAppear, tab 변경, unread count 반영, alert 상태 변경, 관찰 실패 케이스 검증

📸 영상 / 이미지 (Optional)

@opficdev opficdev self-assigned this Jun 16, 2026
@gemini-code-assist

Copy link
Copy Markdown
Contributor

Warning

Gemini encountered an error creating the review. You can try again by commenting /gemini review.

@opficdev

Copy link
Copy Markdown
Owner Author

/gemini review

@gemini-code-assist gemini-code-assist Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request migrates the main view's state management to the Composable Architecture (TCA) by introducing MainFeature and replacing MainViewCoordinator with StoreOf<MainFeature> in MainView. The review feedback suggests several improvements to the new implementation, including removing redundant main-thread dispatching in TCA effects, eliminating duplicate optional checks for analytics screen names, and adopting the modern iOS 17 async API for setting the application badge count.

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.

Comment thread Application/DevLogPresentation/Sources/Main/MainFeature.swift Outdated
Comment thread Application/DevLogPresentation/Sources/Main/MainFeature.swift Outdated
Comment thread Application/DevLogPresentation/Sources/Main/MainFeature.swift Outdated
Comment thread Application/DevLogPresentation/Sources/Main/MainFeature.swift Outdated
@opficdev opficdev merged commit 5fd6fe6 into develop Jun 16, 2026
5 checks passed
@opficdev opficdev deleted the refactor/#581-MainView-TCA branch June 16, 2026 16:07
@opficdev opficdev restored the refactor/#581-MainView-TCA branch June 16, 2026 16:09
@opficdev opficdev deleted the refactor/#581-MainView-TCA branch June 22, 2026 13:51
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

MainView에 TCA를 적용한다

1 participant