Skip to content

[#571] PushNotificationSettingsView에 TCA를 적용한다#590

Merged
opficdev merged 2 commits into
developfrom
refactor/#571-PushNotificationSettingsView-TCA
Jun 12, 2026
Merged

[#571] PushNotificationSettingsView에 TCA를 적용한다#590
opficdev merged 2 commits into
developfrom
refactor/#571-PushNotificationSettingsView-TCA

Conversation

@opficdev

Copy link
Copy Markdown
Owner

🔗 연관된 이슈

🎯 의도

  • PushNotificationSettingsView의 기존 ViewModel 기반 StorePattern 구조를 TCA 기반 Feature/Store 구조로 전환

📝 작업 내용

📌 요약

  • PushNotificationSettingsViewModel 제거 및 PushNotificationSettingsFeature 추가
  • PushNotificationSettingsView를 StoreOf 기반으로 변경
  • ProfileViewCoordinator의 PushNotificationSettings Store 생성 경로 구성
  • TestStore adapter 기반 PushNotificationSettingsFeature 상태 변화 테스트 추가

🔍 상세

  • BindingAction 기반 푸시 활성화, 알림 시간, TimePicker 상태 변경 처리 구성
  • alert, sheet, loading 상태를 TCA Presentation 및 LoadingFeature 구조로 연결
  • 업데이트 실패 시 공통 alert 표시 후 fetchSettings로 서버 상태 재조회
  • TimePickerFeature는 BindingReducer만 유지하는 하위 reducer로 구성
  • MainView와 ProfileView의 PushNotificationSettingsView 생성부를 Store 주입 방식으로 변경
  • fetch, toggle, preset, sheet confirm/rollback, loading, alert, update 실패 rollback 흐름 테스트 추가

📸 영상 / 이미지 (Optional)

@opficdev opficdev self-assigned this Jun 11, 2026

@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 push notification settings screen from a custom ViewModel-based architecture to the Composable Architecture (TCA). It removes the legacy PushNotificationSettingsViewModel, introduces the new PushNotificationSettingsFeature reducer, updates PushNotificationSettingsView to bind to the TCA store, and adds corresponding unit tests. The review feedback recommends using TCA dependencies (@Dependency(\.calendar) and @Dependency(\.date)) instead of directly accessing Calendar.current and Date() to ensure the code remains fully testable and consistent with TCA best practices.

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.

@opficdev opficdev merged commit 3d816ff into develop Jun 12, 2026
5 checks passed
@opficdev opficdev deleted the refactor/#571-PushNotificationSettingsView-TCA branch June 12, 2026 00:11
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.

PushNotificationSettingsView에 TCA를 적용한다

1 participant