docs(content): 콘텐츠 랭킹 rank 보정 계획을 기록한다
This commit is contained in:
@@ -643,6 +643,38 @@
|
||||
|
||||
---
|
||||
|
||||
### Phase 7: rank-num 간격 시각 보정
|
||||
|
||||
- [x] **Task 7.1: rank 텍스트 하단 보정 회귀 테스트 추가**
|
||||
- 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/widget/contentranking/ContentRankingCardViewTest.kt`
|
||||
- 구현 내용:
|
||||
- Large, Medium grid, Small grid, Horizontal variant의 순위 `TextView`가 `includeFontPadding=false`를 유지하는지 검증한다.
|
||||
- 순위 `TextView`에 variant별 하단 padding이 적용되어 Pattaya glyph가 rank-num 영역에 붙어 보이지 않도록 검증한다.
|
||||
- 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.ContentRankingCardViewTest"`
|
||||
- 기대 결과: production 수정 전 padding assertion이 실패한다.
|
||||
|
||||
- [x] **Task 7.2: rank 텍스트 내부 하단 padding 보정**
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/contentranking/ContentRankingLargeCardView.kt`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/contentranking/ContentRankingGridCardView.kt`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/contentranking/ContentRankingHorizontalCardView.kt`
|
||||
- 구현 내용:
|
||||
- 기존 Figma 좌표값과 rank-num top/left는 변경하지 않는다.
|
||||
- 순위 숫자 `TextView` 내부에 scale 기반 하단 padding을 적용해 폰트 glyph가 위쪽으로 보정되도록 한다.
|
||||
- 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.ContentRankingCardViewTest"`
|
||||
- 기대 결과: RED 테스트가 `BUILD SUCCESSFUL`로 전환된다.
|
||||
|
||||
- [x] **Task 7.3: 후속 검증과 문서 기록 누적**
|
||||
- 실행:
|
||||
- `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.*"`
|
||||
- `./gradlew :app:mergeDebugResources`
|
||||
- `./gradlew :app:ktlintCheck`
|
||||
- `git diff --check`
|
||||
- 수정: `docs/20260623_메인_콘텐츠_탭_내부_랭킹_탭/prd.md`
|
||||
- 수정: `docs/20260623_메인_콘텐츠_탭_내부_랭킹_탭/plan-task.md`
|
||||
- 기대 결과: 모두 통과, Verification Log 누적.
|
||||
|
||||
---
|
||||
|
||||
## Verification Log
|
||||
- 구현 중 여러 Phase에 걸친 통합 검증, 회귀 검증, 최종 수동 확인 기록을 이 아래에 누적한다.
|
||||
- 2026-06-24: Phase 1~3 구현 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.*"` 실행 결과 `BUILD SUCCESSFUL`.
|
||||
@@ -664,3 +696,6 @@
|
||||
- 2026-06-24: Phase 6 최종 자동 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 실행 결과 모두 통과했다. Kotlin LSP 진단은 환경에 `kotlin-lsp`가 설치되어 있지 않아 실행 불가했고, `ktlintCheck`의 `.editorconfig disabled_rules` deprecation 경고는 기존 설정 경고로 남아 있다.
|
||||
- 2026-06-24: Phase 6 수동 검증 중 Figma `24:6857` design context/screenshot과 source/test 대조로 Text Tab/Capsule Tab 순서, 랭킹 목록 배치, 초기 `WEEKLY_POPULAR`, `showRankChange=false`, routing guard, `전체` 탭 제외 범위를 확인했다. ADB 권한 상승 조회에서 일시적으로 연결 device와 기존 debug 앱 실행 화면은 확인했으나, 현재 로컬 변경 기준 최신 APK 설치를 위한 `./gradlew :app:installDebug`는 `No connected devices!`로 실패했다. 최신 APK가 설치된 device/emulator 기반 최종 화면 터치 검증은 후속 환경에서 확인 필요하므로 Task 6.4는 [blocked]로 남긴다.
|
||||
- 2026-06-24: Phase 6 코드 리뷰 및 재검증을 수행했다. `ContentMainFragment` routing guard, `ContentRankingViewModel` stale response/loading 처리, mapper의 rank 필터/정렬과 `showRankChange` 전달, widget rank-num `GONE` 처리를 PRD/계획과 대조했고 추가 수정이 필요한 결함은 발견하지 못했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.content.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 재실행 결과 모두 통과했다. `:app:mergeDebugResources`는 샌드박스 내 Gradle wrapper lock 접근 제한으로 1차 실패 후 권한 상승 재실행에서 통과했다.
|
||||
- 2026-06-25: Phase 7.1로 `ContentRankingCardViewTest`에 순위 `TextView`의 `includeFontPadding=false` 유지와 variant별 하단 padding(1위 10px, 2~7위 6px, 8~10위 5px, 11위 이후 4px) 검증을 추가했다. Phase 7.2로 기존 Figma 좌표와 rank-num top/left는 유지하고 콘텐츠 랭킹 Large/Grid/Horizontal 카드의 순위 `TextView` 내부 하단 padding만 scale 기반으로 적용했다.
|
||||
- 2026-06-25: Phase 7 검증 중 최초 병렬 Gradle 실행에서 Kotlin incremental cache 충돌과 timeout이 발생해 `./gradlew --stop`, `./gradlew clean` 후 순차 재실행했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.ContentRankingCardViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`은 모두 `BUILD SUCCESSFUL`로 통과했다. `./gradlew :app:ktlintCheck`는 변경 파일이 아닌 기존 전역 위반(`Agora.kt`, `audio_content` package-name, 기존 `ContentRankingAdapter.kt` 긴 줄 등)으로 실패했으며, `git diff --check`는 출력 없이 통과했다.
|
||||
- 2026-06-25: 리뷰 게이트에서 콘텐츠 랭킹 horizontal rank `TextView`가 고정 박스 없이 bottom padding만 적용되어 rank-num 위치가 밀릴 수 있고, 콘텐츠 rank `TextView`의 중앙 정렬 계약이 부족하다는 blocking 이슈를 확인했다. 후속 보완으로 `ContentRankingHorizontalCardView`에 `48x52` 고정 rank box를 적용하고, 콘텐츠 랭킹 rank XML 3종에 `android:gravity="center"`를 추가했으며, `ContentRankingCardViewTest`가 rank box 크기/위치, gravity, `includeFontPadding=false`, bottom padding을 함께 검증하도록 확장했다. 보완 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.contentranking.ContentRankingCardViewTest"`가 `BUILD SUCCESSFUL`로 통과했다.
|
||||
|
||||
Reference in New Issue
Block a user