Skip to content

[#416] NavigationSplitView를 적용한다#432

Merged
opficdev merged 16 commits intodevelopfrom
feat/#416-NavigationSplitView
May 8, 2026
Merged

[#416] NavigationSplitView를 적용한다#432
opficdev merged 16 commits intodevelopfrom
feat/#416-NavigationSplitView

Conversation

@opficdev
Copy link
Copy Markdown
Owner

@opficdev opficdev commented May 8, 2026

🔗 연관된 이슈

📝 작업 내용

📌 요약

  • compact UI에서는 기존 아이폰용 TabView/NavigationStack 흐름 유지
  • regular UI에서는 MainView에 NavigationSplitView 기반 사이드바 구조 적용
  • Home, Today, Push Notification은 3단 구조로 구성하고 Profile은 2단 구조 유지

🔍 상세

  • MainView에서 horizontalSizeClass 기준으로 compact UI와 regular UI 분기
  • Home의 Todo 카테고리, 최근 수정 Todo, Web Page 선택을 regular UI의 detail 컬럼으로 표시하도록 구성
  • Today의 Todo 선택을 regular UI의 detail 컬럼으로 표시하도록 구성
  • PushNotificationListView에서 compact UI는 기존처럼 sheet로 Todo 상세 표시, regular UI는 detail 컬럼으로 표시
  • 푸시 알림 선택 상태를 selectedNotificationId와 selectedTodoId로 분리해 선택 row 스타일과 상세 표시 연동
  • NavigationRouter를 Route 제네릭 기반으로 정리해 화면별 내비게이션 path 타입 명시
  • Home, Today, Push Notification의 미선택 detail 상태 문구 추가
  • 시스템 Todo 카테고리 색상을 UIColor 기반으로 변환해 SwiftUI 주변 스타일에 따른 색상 변화 완화

📸 영상 / 이미지 (Optional)

image image image image

@opficdev opficdev self-assigned this May 8, 2026
Copy link
Copy Markdown
Contributor

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

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 refactors the navigation architecture to support NavigationSplitView for multi-column layouts on larger screens, utilizing a new generic NavigationRouter and tab-specific route enums. It also updates SystemTodoCategoryItem to use UIColor for better system integration and adds localized strings for selection prompts. Feedback identifies that view models in MainView are incorrectly instantiated in computed properties, leading to state loss, and notes redundant background modifiers that should be removed for better code clarity.

Comment thread DevLog/UI/Common/MainView.swift
Comment thread DevLog/UI/Common/MainView.swift Outdated
Copy link
Copy Markdown
Contributor

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

Choose a reason for hiding this comment

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

Code Review

이번 PR은 iPad 및 큰 화면 대응을 위해 NavigationSplitView를 도입하고 NavigationRouter를 제네릭하게 개선하여 내비게이션 구조를 리팩토링했습니다. MainView에서 레이아웃에 따라 사이드바와 탭 바를 전환하는 로직이 추가되었으며 각 화면의 경로 처리를 위한 Route 열거형이 도입되었습니다. 피드백으로는 MainView의 연산 프로퍼티 내에서 ViewModel이 반복 생성되어 상태가 초기화되는 문제를 방지하기 위해 @State로 관리할 것과 PushNotificationListView에서 시각적 피드백과 접근성을 위해 onTapGesture 대신 Button을 사용할 것이 제안되었습니다.

Comment thread DevLog/UI/Common/MainView.swift
Comment thread DevLog/UI/PushNotification/PushNotificationListView.swift
@opficdev opficdev merged commit b094802 into develop May 8, 2026
1 check passed
@opficdev opficdev deleted the feat/#416-NavigationSplitView branch May 8, 2026 05:49
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.

NavigationSplitView을 적용한다

1 participant