커스텀 탭바 구현 및 네비게이션 구조 개선#30
Merged
Merged
Conversation
PartnerDoriHistory → PartnerDoriDetail 화면에서 swipe-back 제스처 시 DoriList로 건너뛰는 문제를 해결했습니다. 변경 사항: - HistoryFeature에 Path reducer enum 추가 (partnerHistory, partnerDoriDetail, addDori, editDori) - @presents 네비게이션을 StackState<Path>로 변경 - PartnerDoriHistoryFeature에서 @presents doriDetail 제거 - 모든 push 목적지를 단일 navigation path로 평탄화 이제 SwiftUI가 단일 navigation path로 관리하여 swipe-back이 정상 동작합니다. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
.popFrom은 pop 시작 시점에 호출되므로 isEmpty 대신 count == 1로 root 복귀를 감지해야 합니다. Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
- CustomTabBar 및 TabBarItem 컴포넌트 생성 - 탭바 아이콘 리소스 추가 (캘린더, 내역, 마이페이지) - 선택 상태에 따른 아이콘 및 텍스트 스타일 변경 - shadow 및 spacing 디자인 적용 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
MainTabView를 VStack 기반 레이아웃으로 변경하고, TabBar visibility 관리 책임을 분리했습니다. **변경 사항**: - MainTabView: ZStack → VStack(spacing: 0) 구조로 변경 - Content와 TabBar가 명시적으로 수직 배치 - Content가 TabBar에 가려지지 않음 - TabBar visibility 관리 책임 분리: - Before: 각 Feature에서 화면 전환마다 상위 리듀서에 delegate 전송 - After: MainTabFeature가 child state를 관찰하여 자동 계산 (파생 상태) - 역할 분리: - Feature: path/navigation 관리에만 집중 - MainTabFeature: isTabBarVisible 계산 및 TabBar 표시 관리 - 각 Feature에서 불필요한 delegate 액션 제거: - HistoryFeature: showTabBar/hideTabBar delegate 제거 - CalendarFeature: 기존 로직 유지 (addDori 상태 기반) - DoriListView: TabBar로 인한 중복 padding 제거 **기술적 개선**: - 책임 과다 해소: Feature가 TabBar 상태를 신경 쓰지 않음 - 단방향 데이터 플로우 강화: 파생 상태로 자동 계산 - 코드 중복 제거: 각 Feature에서 반복되던 delegate 제거 Co-Authored-By: Claude Sonnet 4.5 <noreply@anthropic.com>
Closed
9 tasks
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.
About this PR
⚓ Related Issue
🥥 Contents
이 PR은 CustomTabBar 구현과 네비게이션 구조 개선을 포함합니다.
1. History 네비게이션 구조 개선
@Presents기반 Tree navigationStackState/StackAction기반 Stack navigation2. CustomTabBar UI 컴포넌트 구현
3. TabBar visibility 관리 책임 분리
Before: 각 Feature에서 화면 전환마다 상위 리듀서에
delegate전송과도한 전파로 인해 모든 화면 전환에 대한 유즈케이스에 대해 TabBar visibility 코드를 작성해야함
After: MainTabFeature가 child state를 관찰하여 자동 계산 (파생 상태)
역할 분리:
path/navigation관리에만 집중isTabBarVisible계산 및 TabBar 표시 관리4. MainTabView 레이아웃 개선
📸 Screenshot
Other information 🔥
기술적 개선
computed property)로 자동 계산Lessons Learned 문서 추가
StackAction.popFrom타이밍 이슈 문서화.popFrom은 pop 시작 시점 호출 (완료 전)path.count == 1로 root 복귀 감지