diff --git a/docs/20260608_크리에이터_랭킹_페이지/plan-task.md b/docs/20260608_크리에이터_랭킹_페이지/plan-task.md index 90bccdd4..d1f0ed1b 100644 --- a/docs/20260608_크리에이터_랭킹_페이지/plan-task.md +++ b/docs/20260608_크리에이터_랭킹_페이지/plan-task.md @@ -308,6 +308,40 @@ - 수정: `docs/20260608_크리에이터_랭킹_페이지/plan-task.md` - 기대 결과: 모두 `BUILD SUCCESSFUL`, Verification Log 누적. + +--- + +### Phase 8: Figma 최신 순위 영역 수치 보정 + +- [x] **Task 8.1: 순위 영역 최신 수치 RED 테스트 추가** + - 수정: `app/src/test/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingAdapterLayoutTest.kt` + - 구현 내용: + - Figma `24:5658` 기준 1위, 2~7위, 8~10위, 11위 이후 순위 숫자 박스 크기와 rank-num 위치를 검증한다. + - rank-num 상승/하락/유지/New 표시의 기존 노출 정책은 유지한다. + - 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"` + - 기대 결과: production 수정 전 1위/8~10위 순위 박스와 1위/8~10위 rank-num 위치 assertion이 실패한다. + +- [x] **Task 8.2: 순위 숫자 박스와 rank-num 위치 보정** + - 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingLargeCardView.kt` + - 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingCompactCardView.kt` + - 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingHorizontalCardView.kt` + - 구현 내용: + - 1위 순위 숫자 박스는 `86x116`, rank-num은 `left=20`, `top=116` 기준으로 맞춘다. + - 2~7위 순위 숫자 박스는 `56x70`, rank-num은 `left=10`, `top=70` 기준으로 맞춘다. + - 8~10위 순위 숫자 박스는 `52x50`, `left=0`, rank-num은 `left=10`, `top=50` 기준으로 맞춘다. + - 11위 이후 순위 텍스트는 rank group 내부에서 `48x52` 기준으로 맞춘다. + - 검증 명령: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"` + - 기대 결과: RED 테스트가 `BUILD SUCCESSFUL`로 전환된다. + +- [x] **Task 8.3: 후속 검증과 문서 기록 누적** + - 실행: + - `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"` + - `./gradlew :app:mergeDebugResources` + - `./gradlew :app:ktlintCheck` + - 수정: `docs/20260608_크리에이터_랭킹_페이지/prd.md` + - 수정: `docs/20260608_크리에이터_랭킹_페이지/plan-task.md` + - 기대 결과: 모두 `BUILD SUCCESSFUL`, Verification Log 누적. + --- ## Verification Log @@ -328,3 +362,7 @@ - 2026-06-09: Phase 7.1 RED로 `CreatorRankingAdapterLayoutTest`에 Large/Compact medium/Compact small/Horizontal 순위 박스 검증을 추가하고 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`를 실행했다. Large/Compact medium/Compact small 3건이 `Gravity.CENTER` assertion에서 실패해 순위 TextView 내부 정렬 미반영을 확인했다. - 2026-06-09: Phase 7.2로 `view_creator_ranking_large_card.xml`, `view_creator_ranking_compact_card.xml`, `view_creator_ranking_horizontal_card.xml`의 순위 TextView에 `android:gravity="center"`를 추가했다. 동일 `CreatorRankingAdapterLayoutTest`가 `BUILD SUCCESSFUL`로 전환됐다. - 2026-06-09: Phase 7.3 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`와 `./gradlew :app:mergeDebugResources`를 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다. +- 2026-06-09: Figma `24:5658` design context와 screenshot을 재확인했고, 순위 숫자 박스 및 rank-num 위치에서 현재 구현과 다른 최신 기준값을 Phase 8 후속 작업으로 추가했다. +- 2026-06-09: Phase 8.1 RED로 `CreatorRankingAdapterLayoutTest`의 순위 숫자 박스/순위 변화 표시 위치 기대값을 Figma `24:5658` 기준으로 갱신하고 실행했다. production 수정 전 1위/2~7위/8~10위 순위 박스, 11위 이후 rank group top, 1위/8~10위 rank-num 위치 assertion 6건 실패를 확인했다. +- 2026-06-09: Phase 8.2로 `CreatorRankingLargeCardView`, `CreatorRankingCompactCardView`, `CreatorRankingHorizontalCardView`의 위치 계산을 Figma 기준으로 보정했다. 동일 `CreatorRankingAdapterLayoutTest`가 `BUILD SUCCESSFUL`로 전환됐다. New badge는 기존 PRD가 이미지 리소스 사용을 요구하고 `ic_rank_new.png`가 36x23으로 Figma 크기와 일치해 유지했다. +- 2026-06-09: Phase 8.3 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`를 실행했다. 최초 ktlint에서 테스트 파일 불필요한 빈 줄 2건이 실패해 정리했고, 이후 `CreatorRankingAdapterLayoutTest`와 `ktlintCheck`가 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다. diff --git a/docs/20260608_크리에이터_랭킹_페이지/prd.md b/docs/20260608_크리에이터_랭킹_페이지/prd.md index e738af51..da6a14ef 100644 --- a/docs/20260608_크리에이터_랭킹_페이지/prd.md +++ b/docs/20260608_크리에이터_랭킹_페이지/prd.md @@ -150,7 +150,8 @@ - Capsule Tab bar를 제거한 상태에서도 Text Tab bar 아래 여백이 과도하게 남지 않아야 한다. - 랭킹 목록 좌우 margin과 item gap은 기존 `CreatorRankingAdapter`와 Figma 목록 폭을 기준으로 맞춘다. - 순위 숫자는 Figma의 시각적 margin을 임의로 추가하지 않고, variant별 고정 텍스트 박스 크기 안에서 중앙 정렬해 표시한다. -- 1위, 2~7위, 8~10위, 11위 이후 순위 영역의 고정 박스 크기와 위치는 기존 Figma 기준 계산값을 유지한다. +- 1위, 2~7위, 8~10위, 11위 이후 순위 영역의 고정 박스 크기와 위치는 Figma `24:5658`의 최신 기준값을 따른다. +- `rank-num`은 Figma 기준 위치를 따른다. 1위는 `top=116`, 2~7위는 `top=70`, 8~10위는 `top=50`, 11위 이후는 rank group 내부 배치를 유지한다. - `랭킹` 탭 선택 상태가 흰색 텍스트로 명확히 드러나야 한다. - 1위~20위까지 응답이 내려오면 Figma 예시처럼 20위까지 자연스럽게 스크롤로 확인할 수 있어야 한다. - 긴 닉네임은 기존 위젯의 ellipsize/line 제한 정책을 따른다. @@ -173,7 +174,8 @@ - `랭킹` 탭 선택 시 `GET /api/v2/home/rankings/creators` 응답 item이 `CreatorRankingAdapter`에 전달된다. - Figma `24:5654`의 Capsule Tab bar는 화면에 존재하지 않는다. - 1위, 2~7위, 8~10위, 11위 이후 variant가 기존 위젯 정책과 일치한다. -- 순위 숫자는 고정 텍스트 박스 내부에서 중앙 정렬되어 Figma와 동일한 시각적 좌측 여백으로 보인다. +- 순위 숫자는 Figma `24:5658`의 고정 텍스트 박스 내부에서 중앙 정렬되어 동일한 시각적 좌측 여백으로 보인다. +- 1위 순위 박스는 `86x116`, 2~7위는 `56x70`, 8~10위는 `52x50`, 11위 이후 순위 텍스트는 `48x52` 기준으로 표시된다. - `isNew=true` item은 New badge로 표시된다. - `isNew=false && (rankChange=null || rankChange=0)` item은 유지 상태로 표시된다. - `rankChange > 0` item은 상승, `rankChange < 0` item은 하락으로 표시된다. @@ -208,3 +210,5 @@ - 2026-06-08: 최종 검증으로 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeCreatorRankingMapperTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 순차 실행했고 모두 `BUILD SUCCESSFUL`로 통과했다. Gradle deprecated feature warning은 기존 빌드 경고로 보고 수정하지 않았다. - 2026-06-09: 사용자 확인에 따라 Figma상 순위 숫자의 margin 값 자체를 추가하지 않고, 기존 고정 텍스트 박스 크기 안에서 텍스트 정렬을 맞추는 후속 보정 요구사항을 추가했다. - 2026-06-09: 순위 TextView 내부 중앙 정렬 보정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:mergeDebugResources`가 모두 `BUILD SUCCESSFUL`로 통과했다. +- 2026-06-09: Figma `24:5658` design context와 screenshot을 재확인해 순위 숫자 박스 및 rank-num 위치의 최신 기준값을 후속 보정 요구사항으로 반영했다. +- 2026-06-09: 최신 Figma 수치 보정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.CreatorRankingAdapterLayoutTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.creatorranking.*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:ktlintCheck`가 모두 `BUILD SUCCESSFUL`로 통과했다.