docs(creator): 채널 홈 오디오 섹션 검증을 기록한다

This commit is contained in:
2026-06-15 15:01:46 +09:00
parent 5fde0bc469
commit c45c5a2a5c

View File

@@ -633,7 +633,7 @@
- 2026-06-15: Figma `296:14947`을 확인해 일정 섹션이 `SectionTitle`, 351dp feed card, 53dp calendar 영역, 타입 tag, 로컬 시간 텍스트를 가진 세로 3개 row 구조임을 반영했다. 사용자 추가 요구에 따라 `scheduledAtUtc`는 UTC로 파싱한 뒤 디바이스 Timezone 기준 날짜/요일/시간으로 표시한다. 스케줄은 `scheduledAtUtc`가 가장 가까운 순으로 정렬해 최대 3개만 매핑한다. 스케줄 item 클릭은 콘텐츠(`AUDIO`, `LIVE_REPLAY`)는 `AudioContentDetailActivity`로, 라이브(`LIVE`)는 예약 라이브를 고려해 `LiveRoomActivity` 직접 진입이 아니라 `LiveRoomDetailFragment` 표시로 연결했다. RED로 `CreatorChannelHomeMapperTest``CreatorChannelHomeActivitySourceTest`에 정렬/최대 3개, 전용 layout/row bind, Timezone 변환, 상세 이동 계약을 추가했고, 기존 구현이 `formatCreatorChannelSchedule*` 미구현으로 실패함을 확인했다. 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeMapperTest.스케줄은 scheduledAtUtc가 가까운 순으로 최대 3개만 매핑한다"`와 일정 source/timezone/navigation 테스트 3건이 PASS했다. 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`가 PASS했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Kotlin/Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다. - 2026-06-15: Figma `296:14947`을 확인해 일정 섹션이 `SectionTitle`, 351dp feed card, 53dp calendar 영역, 타입 tag, 로컬 시간 텍스트를 가진 세로 3개 row 구조임을 반영했다. 사용자 추가 요구에 따라 `scheduledAtUtc`는 UTC로 파싱한 뒤 디바이스 Timezone 기준 날짜/요일/시간으로 표시한다. 스케줄은 `scheduledAtUtc`가 가장 가까운 순으로 정렬해 최대 3개만 매핑한다. 스케줄 item 클릭은 콘텐츠(`AUDIO`, `LIVE_REPLAY`)는 `AudioContentDetailActivity`로, 라이브(`LIVE`)는 예약 라이브를 고려해 `LiveRoomActivity` 직접 진입이 아니라 `LiveRoomDetailFragment` 표시로 연결했다. RED로 `CreatorChannelHomeMapperTest``CreatorChannelHomeActivitySourceTest`에 정렬/최대 3개, 전용 layout/row bind, Timezone 변환, 상세 이동 계약을 추가했고, 기존 구현이 `formatCreatorChannelSchedule*` 미구현으로 실패함을 확인했다. 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeMapperTest.스케줄은 scheduledAtUtc가 가까운 순으로 최대 3개만 매핑한다"`와 일정 source/timezone/navigation 테스트 3건이 PASS했다. 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`가 PASS했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Kotlin/Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- 2026-06-15: 후속 확인에서 Figma `296:14953`의 왼쪽 timeline indicator가 누락되어 있음을 확인하고 추가 구현했다. `item_creator_channel_home_schedule.xml``ll_schedule_timeline` column을 추가하고, `CreatorChannelHomeSectionAdapter`에서 실제 표시 스케줄 수만큼 dot을 만들며 dot 사이 line 개수는 `scheduleCount - 1`개로 계산한다. 첫 dot은 Figma처럼 `soda_400`, 나머지 dot과 line은 `gray_700`으로 표시한다. RED로 `CreatorChannelHomeActivitySourceTest`에 timeline dot/line 동적 생성 계약을 추가해 `calculateCreatorChannelScheduleTimelineLineCount` 미구현 실패를 확인했고, 구현 후 해당 테스트와 `./gradlew :app:mergeDebugResources`가 PASS했다. - 2026-06-15: 후속 확인에서 Figma `296:14953`의 왼쪽 timeline indicator가 누락되어 있음을 확인하고 추가 구현했다. `item_creator_channel_home_schedule.xml``ll_schedule_timeline` column을 추가하고, `CreatorChannelHomeSectionAdapter`에서 실제 표시 스케줄 수만큼 dot을 만들며 dot 사이 line 개수는 `scheduleCount - 1`개로 계산한다. 첫 dot은 Figma처럼 `soda_400`, 나머지 dot과 line은 `gray_700`으로 표시한다. RED로 `CreatorChannelHomeActivitySourceTest`에 timeline dot/line 동적 생성 계약을 추가해 `calculateCreatorChannelScheduleTimelineLineCount` 미구현 실패를 확인했고, 구현 후 해당 테스트와 `./gradlew :app:mergeDebugResources`가 PASS했다.
- [ ] **Task 5R.6: 오디오 컨텐츠 섹션 재구성** - [x] **Task 5R.6: 오디오 컨텐츠 섹션 재구성**
- 수정 예정: - 수정 예정:
- `CreatorChannelHomeSectionAdapter.kt` - `CreatorChannelHomeSectionAdapter.kt`
- `item_creator_channel_home_audio.xml` - `item_creator_channel_home_audio.xml`
@@ -647,6 +647,8 @@
- 기존 `AudioContentCardView` 재사용 여부를 먼저 판정하고, 요구와 다르면 전용 Android View를 만든다. - 기존 `AudioContentCardView` 재사용 여부를 먼저 판정하고, 요구와 다르면 전용 Android View를 만든다.
- 검증 기준: - 검증 기준:
- 오디오 컨텐츠는 adapter 내부 `createContentTile`이 아니라 component/layout bind로 표시된다. - 오디오 컨텐츠는 adapter 내부 `createContentTile`이 아니라 component/layout bind로 표시된다.
- 검증 기록:
- 2026-06-15: Figma `296:14958`을 확인해 오디오 컨텐츠 섹션이 `SectionTitle`, 88dp 썸네일, 16sp title, 14sp secondary text를 가진 item row이며, 아이템 최대 width가 402dp 기준 346dp인 구조임을 반영했다. 사용자 요구에 따라 최대 9개만 표시하고, 섹션은 `RecyclerView + GridLayoutManager`로 구성했다. `AudioContentCardView`는 요구사항과 달라 재사용하지 않고 `CreatorChannelHomeAudioContentCardView` 전용 Android View와 `item_creator_channel_home_audio_content.xml`을 추가했다. item 내부는 썸네일 + 텍스트 컬럼의 단순 행 구조라 사용자 피드백에 따라 `GridLayout`이 아니라 `LinearLayout`으로 구성하고, 목록 grid는 `GridLayoutManager`로 유지했다. 아이템 클릭은 `AudioContentDetailActivity``Constants.EXTRA_AUDIO_CONTENT_ID`로 이동하도록 연결했다. RED로 `CreatorChannelHomeActivitySourceTest`에 오디오 전용 layout/View, 최대 9개, 346dp width 비율 계산, `GridLayoutManager`, 상세 이동 계약을 추가했고, 최초 실행에서 `calculateCreatorChannelAudioItemWidthDp` 미구현으로 실패함을 확인했다. 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.CreatorChannelHomeActivitySourceTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.creator.channel.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`가 PASS했다. `compileDebugKotlin` 중 Kotlin daemon cache/파일 경합으로 fallback compile이 발생했으나 최종 빌드는 성공했다. `ktlintCheck``.editorconfig disabled_rules` deprecation 경고와 Kotlin/Gradle deprecation warning은 기존 경고로 이번 변경과 무관하다.
- [ ] **Task 5R.7: 시리즈 섹션 재구성** - [ ] **Task 5R.7: 시리즈 섹션 재구성**
- 수정 예정: - 수정 예정: