feat(home): 팔로잉 스케줄 섹션을 추가한다

This commit is contained in:
Yu Sung
2026-07-01 13:38:43 +09:00
parent 772af3dfe3
commit e3dd508528
6 changed files with 325 additions and 6 deletions

View File

@@ -284,7 +284,7 @@
### Phase 7: 이달의 스케줄 섹션
- [ ] **Task 7.1: 이달의 스케줄 섹션 생성**
- [x] **Task 7.1: 이달의 스케줄 섹션 생성**
- 대상 파일:
- 생성: `SodaLive/Sources/V2/Main/Home/Following/Components/MainHomeFollowingScheduleSection.swift`
- 작업 내용:
@@ -300,7 +300,7 @@
- 실행 명령: `rg "struct MainHomeFollowingScheduleSection|monthlyScheduleTitle|FollowingScheduleResponse|scheduledAtUtc|isOnAir|Color.soda400|CreatorActivityType|onTapSchedule|오늘" SodaLive/Sources/V2/Main/Home/Following/Components/MainHomeFollowingScheduleSection.swift`
- 기대 결과: 스케줄 카드 표시, On Air 강조, schedule tap callback이 확인된다.
- [ ] **Task 7.2: 스케줄 상세 진입 연결**
- [x] **Task 7.2: 스케줄 상세 진입 연결**
- 대상 파일:
- 수정: `SodaLive/Sources/V2/Main/Home/MainHomeView.swift`
- 수정: `SodaLive/Sources/V2/Main/MainView.swift`
@@ -527,3 +527,11 @@
- 2026-07-01: `rg "MainHomeFollowingChatSection.swift|MainHomeFollowingChatSection.swift in Sources" SodaLive.xcodeproj/project.pbxproj`로 신규 Swift 파일의 Xcode 프로젝트 등록을 확인했다.
- 2026-07-01: `if rg "localhost:3845|unread" SodaLive/Sources/V2/Main/Home/Following/Components/MainHomeFollowingChatSection.swift; then exit 1; else true; fi`를 실행해 Figma localhost asset과 별도 unread 표시가 들어가지 않았음을 확인했다.
- 2026-07-01: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build`를 실행해 Phase 6 구현 후 빌드 성공을 확인했다. 기존 duplicate build file/Crashlytics dSYM/AppIntents warning은 남아 있으나 컴파일 오류는 없었다.
- 2026-07-01: Figma `24:5703`, `24:5706`, `24:5707`을 확인해 Phase 7 이달의 스케줄 섹션을 구현했다. 카드 `Color.gray900`, 14pt radius/padding, 53x53 날짜 영역, 20pt 프로필, 16pt 제목/상태, gray700 활동 tag를 반영했고, 오늘/On Air dot 및 On Air 상태/좌측 accent는 `Color.soda400`, 일반 schedule dot/line/status는 gray 계열로 분리했다.
- 2026-07-01: `MainHomeFollowingView -> MainHomeView -> MainView.handleFollowingScheduleTap(type:targetId:)` 경로로 스케줄 tap callback을 연결했다. `.live`/`.liveReplay`은 기존 live 입장, `.audio`는 콘텐츠 상세, `.community`는 기존 정책에 따라 `creatorCommunityAll(creatorId:)`, `.unknown`은 no-op 처리했다.
- 2026-07-01: `SodaLive.xcodeproj/project.pbxproj``MainHomeFollowingScheduleSection.swift` 파일 참조와 Sources build file을 추가해 Xcode navigator와 target compile sources에서 확인 가능하도록 등록했다.
- 2026-07-01: `rg "MainHomeFollowingScheduleSection.swift|MainHomeFollowingScheduleSection.swift in Sources|onTapFollowingSchedule|onTapSchedule|monthlySchedules|CreatorActivityType|contentDetail|creatorCommunityAll|enterLiveRoom|On Air|a hh:mm|오늘|Color.soda400|Color.gray500|localhost:3845" SodaLive/Sources/V2/Main/Home/Following SodaLive/Sources/V2/Main/Home/MainHomeView.swift SodaLive/Sources/V2/Main/MainView.swift SodaLive.xcodeproj/project.pbxproj`로 Phase 7 UI, 라우팅, 프로젝트 등록, Figma localhost asset 미사용을 확인했다.
- 2026-07-01: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug build`는 기존 DerivedData `build.db` lock으로 실패했으나, `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug -derivedDataPath "/var/folders/yh/8xsbvpsj5wg2qnxzxdp11_gm0000gn/T/opencode/SodaLiveDerivedDataPhase7" build`로 재실행해 빌드 성공을 확인했다. 기존 duplicate build file/run script/AppIntents/dependency scan warning은 남아 있으나 컴파일 오류는 없었다.
- 2026-07-01: 사용자 피드백에 따라 Figma `24:5703`의 왼쪽 스케줄 timeline을 재확인했다. 기존 item별 `TimelineGuideView`는 카드 사이 gap에서 line이 끊겨 보이고 dot 위치가 Figma보다 카드에 가까웠으므로, list 전체 overlay의 `ScheduleTimelineLine`과 item별 `TimelineDotView` 구조로 변경하고 item gap을 4pt로 맞췄다.
- 2026-07-01: `rg "VStack\(alignment: \.leading, spacing: SodaSpacing\.s4\)|ScheduleTimelineLine|TimelineDotView|padding\(\.vertical, 52\)|opacity\(monthlySchedules\.count > 1|HStack\(alignment: \.center, spacing: SodaSpacing\.s14\)|localhost:3845" SodaLive/Sources/V2/Main/Home/Following/Components/MainHomeFollowingScheduleSection.swift`로 연속 line/dot 구조와 Figma localhost asset 미사용을 확인했다.
- 2026-07-01: `xcodebuild -workspace "SodaLive.xcworkspace" -scheme "SodaLive" -configuration Debug -derivedDataPath "/var/folders/yh/8xsbvpsj5wg2qnxzxdp11_gm0000gn/T/opencode/SodaLiveDerivedDataPhase7" build`를 실행해 timeline 수정 후 빌드 성공을 확인했다. 기존 warning은 남아 있으나 컴파일 오류는 없었다.