docs(home): 첫 오디오 섹션 검증 기록을 추가한다
This commit is contained in:
@@ -275,6 +275,20 @@
|
||||
- `rv_home_recent_debut_creators` 시작 padding `14dp`, item gap `4dp` 적용
|
||||
- 검증: `HomeMainFragmentLayoutTest`에 recent debut 카드 치수와 목록 간격 회귀 테스트를 추가한다.
|
||||
|
||||
- [x] **Task 6.9: 처음부터 함께 성장! Figma 정합 수정**
|
||||
- 기준: Figma `24:5539`
|
||||
- 생성: `app/src/main/res/layout/item_home_first_audio_content.xml`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFirstAudioAdapter.kt`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeRecyclerItemLayoutParams.kt`
|
||||
- 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragmentLayoutTest.kt`
|
||||
- 구현 내용:
|
||||
- `AudioContentCardView` 재사용 대신 첫 오디오 전용 item layout을 사용한다.
|
||||
- 썸네일을 `185dp x 185dp`, radius `14dp` 카드로 구성한다.
|
||||
- creator profile을 `42dp x 42dp`, creator nickname `14sp`로 구성하고 상세 시간은 표시하지 않는다.
|
||||
- `rv_home_first_audio_contents` 시작 padding `14dp`, item gap `4dp`를 적용한다.
|
||||
- `First`, `Point`, `Free` tag 표시 조건은 기존 UI model의 `tags`를 그대로 사용한다.
|
||||
- 검증: `HomeMainFragmentLayoutTest`에 first audio 카드 치수, 목록 간격, tag visibility 회귀 테스트를 추가한다.
|
||||
|
||||
---
|
||||
|
||||
### Phase 7: FeedCommunityView 추천 페이지 확장
|
||||
@@ -422,3 +436,10 @@
|
||||
- 2026-06-02: Figma `24:5534` 기준 `최근 데뷔한 크리에이터` 섹션을 확인해 기존 `112dp` 세로 원형 profile item이 디자인과 다름을 확인했다. `HomeMainFragmentLayoutTest`에 recent debut 카드 치수와 목록 간격 테스트를 먼저 추가했고, 기존 구현에서 `recent debut creator item matches figma card dimensions`, `home recent debut section matches figma list spacing` 두 테스트가 실패하는 RED 상태를 확인했다.
|
||||
- 2026-06-02: `item_home_recent_debut_creator.xml`을 `205dp x 259dp` 이미지 카드 구조로 변경하고, radius `14dp` 배경/하단 dim gradient/`24sp` bold 중앙 닉네임을 적용했다. `HomeRecentDebutCreatorAdapter`에는 최근 데뷔 전용 `4dp` item gap을 적용했고, `rv_home_recent_debut_creators` 시작 padding을 Figma 기준 `14dp`로 맞췄다. 동일 targeted 테스트 재실행 결과 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: 최근 데뷔 수정 후 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`는 BUILD SUCCESSFUL을 확인했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`는 이번 최근 데뷔 테스트는 통과했지만 기존 `home live section matches figma row dimensions`가 `rv_home_lives` 높이 기대값(`102dp`)과 현재 XML `wrap_content`가 맞지 않아 실패했다. 이후 사용자 확인에 따라 `rv_home_lives` 높이는 아이템 높이를 따라가야 하므로 `wrap_content`가 올바른 계약으로 정정했다.
|
||||
- 2026-06-02: Figma `24:5539` 기준 `처음부터 함께 성장!` 섹션을 확인해 기존 `AudioContentCardView` 기반 item이 전용 profile row 구조와 item gap을 재현하기 어렵다는 점을 확인했다. `HomeMainFragmentLayoutTest`에 first audio 전용 item 치수, 목록 간격, tag visibility 테스트를 먼저 추가했고, 구현 전 `item_home_first_audio_content`와 관련 view ID 미존재로 RED 컴파일 실패를 확인했다.
|
||||
- 2026-06-02: `item_home_first_audio_content.xml`을 추가하고 `HomeFirstAudioAdapter`가 `AudioContentCardView` 대신 전용 item을 inflate하도록 변경했다. 썸네일은 `185dp x 185dp`, creator profile은 `42dp x 42dp`, item gap은 `4dp`로 맞췄고, `First`/`Point`/`Free` tag visibility는 기존 `tags` 모델로 바인딩했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"` 재실행 결과 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: 리뷰에서 first audio 썸네일 이미지 clipping과 `Free` tag visibility 테스트 누락이 차단 이슈로 지적되어 `item_home_first_audio_content.xml`에 `clipToOutline="true"`를 추가하고 `HomeMainFragmentLayoutTest`에서 `First`/`Point`/`Free` 개별 tag visibility를 모두 검증하도록 보강했다. 이후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: first audio adapter에서 nullable image URL이 재사용된 ViewHolder의 이전 이미지를 남길 수 있는 케이스를 확인했다. `first audio adapter clears nullable images` 테스트를 추가해 수정 전 실패를 확인한 뒤, `HomeFirstAudioAdapter`에서 `coverImage`/`creatorProfileImage`가 null이면 drawable을 명시적으로 비우도록 수정했다. 이후 해당 테스트, `HomeMainFragmentLayoutTest` 전체, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: first audio 썸네일은 이미지뿐 아니라 `FIRST`/`Point`/`Free` overlay까지 같은 radius로 잘려야 한다는 사용자 확인에 따라 Coil transformation 방식이 아니라 썸네일 parent `FrameLayout` 전체에 Kotlin `clipToOutline = true`와 `ViewOutlineProvider.setRoundRect(..., 14dp)`를 적용했다. XML `android:clipToOutline`은 lint 경고를 피하기 위해 사용하지 않았다. `first audio adapter clips thumbnail container` 테스트를 추가했고, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: `AudioContentCardView`의 이미지 표시 영역도 first audio 전용 item과 동일하게 이미지와 overlay tag가 함께 roundRect clipping되도록 확인하고, `First`/`Point`/`Free` tag 속성을 `item_home_first_audio_content.xml`과 맞췄다. `HomeMainFragmentLayoutTest`에 `audio content card clips image area and overlay tags together`, `audio content card tag attributes match first audio item` 회귀 테스트를 추가했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-02: `AudioContentCardView`와 `item_home_first_audio_content.xml`의 badge별 제어를 위해 `Original`/`First`/`Point`/`Free` badge에 안정적인 id를 추가했다. `AudioContentCardView`의 runtime 생성 badge에도 동일 id를 부여하고, `First`와 `Free` badge 높이를 `24dp`로 유지하도록 맞췄다. `HomeMainFragmentLayoutTest`에서 badge id/높이 계약을 검증하도록 보강했으며 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행해 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
|
||||
Reference in New Issue
Block a user