docs(home): 팔로잉 최근 소식 검증을 기록한다

This commit is contained in:
2026-06-30 15:04:26 +09:00
parent 7e281a15a5
commit c745481ab2
2 changed files with 74 additions and 0 deletions

View File

@@ -516,6 +516,72 @@
---
### Phase 7: 최근 소식 ranking 문장과 오디오 콘텐츠 feed 정합성 후속 수정
- [x] **Task 7.1: Figma 기준과 현재 구현 불일치 RED 테스트 추가**
- 수정:
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeFollowingFragmentSourceTest.kt`
- `app/src/test/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedViewTest.kt`
- 작업:
- 팔로잉 최근 소식 ranking item이 `creatorNickname`, `rank`, 문장형 message, `FeedRankHighlight`를 구성하는지 검증한다.
- `view_feed_content.xml`이 Figma `1229:27212` 기준 `88dp` 이미지, `14dp` 카드 gap, `6dp` 프로필-타이틀 간격을 갖는지 검증한다.
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest" --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`
- Expected: 구현 전 RED 실패.
- Result: RED 확인. `HomeFollowingFragmentSourceTest.following adapters bind figma required item fields`, `HomeFollowingFragmentSourceTest.following ranking news builds sentence message and highlights rank text`, `FeedViewTest.content layout matches figma compact upload notice dimensions` 3건이 현재 구현과 맞지 않아 실패했다.
- [x] **Task 7.2: 최근 소식 ranking message와 content feed layout 수정**
- 수정:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFollowingNewsAdapter.kt`
- `app/src/main/res/layout/view_feed_content.xml`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedContentView.kt`
- 작업:
- ranking feed message는 `creatorNickname + rank + 문장`으로 구성하고, 순위 구간만 highlight range로 전달한다.
- content feed 이미지는 `88dp` 정사각 기준으로 변경하고, 오른쪽 정보 컬럼은 Figma의 프로필/제목/메타 간격을 유지한다.
- `FeedContentView`의 기본 이미지 크기 계산 기준을 `88dp`로 맞춘다.
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest" --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`
- Expected: PASS.
- Result: PASS. ranking news가 크리에이터명/순위를 포함한 문장형 message와 순위 highlight range를 구성하고, content feed가 `88dp` 이미지 및 Figma compact feed 간격 기준을 갖도록 검증됐다.
- [ ] **Task 7.3: 후속 변경 통합 검증**
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`
- Expected: 팔로잉 관련 local unit/source test가 모두 PASS.
- Run: `./gradlew :app:mergeDebugResources`
- Expected: layout/resource merge PASS.
- Run: `./gradlew :app:compileDebugKotlin`
- Expected: Kotlin compile PASS.
- Run: `./gradlew :app:ktlintCheck`
- Expected: ktlint PASS.
- Run: `git diff --check`
- Expected: whitespace error 없음.
- 검증 기록:
- 2026-06-30 후속 변경 검증: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"` PASS.
- 2026-06-30 후속 변경 검증: `./gradlew :app:mergeDebugResources`는 최초 병렬 실행 중 Gradle wrapper lock sandbox 권한 오류로 실패했고, 승인 실행 재시도에서 PASS.
- 2026-06-30 후속 변경 검증: `./gradlew :app:compileDebugKotlin` PASS.
- 2026-06-30 후속 변경 검증: `git diff --check` PASS.
- 2026-06-30 후속 변경 검증: `./gradlew :app:ktlintCheck`는 FAIL. 실패 지점은 이번 변경 파일이 아닌 `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/creatorranking/CreatorRankingTopCardView.kt:11`의 기존 unused import이며, 저장소 규칙에 따라 unrelated 파일은 수정하지 않았다.
- [x] **Task 7.4: content feed radius clipping 구현 위치 수정**
- 수정:
- `app/src/main/res/layout/view_feed_content.xml`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedContentView.kt`
- `app/src/test/java/kr/co/vividnext/sodalive/v2/widget/feed/FeedViewTest.kt`
- 작업:
- `view_feed_content.xml``android:clipToOutline` 속성을 제거한다.
- `FeedContentView` root view에서 `clipToOutline = true``ViewOutlineProvider.setRoundRect(...)`를 설정한다.
- 가이드 `docs/agent-guides/code-style.md`의 radius clipping 규칙을 source test로 고정한다.
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`
- Expected: RED 확인 후 PASS.
- Result: RED 확인 후 PASS. `view_feed_content.xml``android:clipToOutline` 제거와 `FeedContentView` root의 Kotlin `clipToOutline`/`outlineProvider` 설정을 검증했다.
- 검증 기록:
- 2026-06-30 clipping 위치 수정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:compileDebugKotlin`, `git diff --check` PASS.
- 2026-06-30 clipping 위치 수정 후 `./gradlew :app:mergeDebugResources`는 최초 병렬 실행 중 Gradle wrapper lock sandbox 권한 오류로 실패했고, 승인 실행 재시도에서 PASS.
---
## Verification Log
- 2026-06-25 Phase 1-3 구현 검증: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 모두 PASS.
- 2026-06-25 Phase 1-3 코드 리뷰 및 재검증: blocking finding 없음. `./gradlew :app:mergeDebugResources`는 최초 sandbox lock 권한 오류 후 승인 실행으로 PASS했고, 나머지 검증 명령도 PASS.
@@ -526,3 +592,5 @@
- 2026-06-26 Phase 6 리뷰 지적 후 재검증: 최근 대화 item 폭 override를 제거하고 source test를 보강했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest.following recent chat item matches figma box fields"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check`, `./gradlew :app:installDebug` 모두 PASS. `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.
- 2026-06-26 최근 대화 한 줄 제한 후속 검증: `item_home_following_chat.xml``tv_home_following_chat_message``maxLines="1"`로 변경하고 기존 `ellipsize="end"`를 유지했다. RED/GREEN source test, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `git diff --check` 모두 PASS.
- 2026-06-26 최근 소식 Feed 위젯 재사용 후속 검증: 최근 소식 chevron 제거와 `FeedCommunityView`/`FeedRankView`/`FeedContentView` 재사용을 source test로 고정했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` 모두 PASS. `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.
- 2026-06-30 최근 소식 ranking/content 후속 검증: Figma `24:5717`, `1229:27212` 기준으로 ranking 문장형 message와 content feed `88dp` 이미지/간격을 RED 테스트로 고정한 뒤 GREEN 확인했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest" --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `git diff --check` PASS. `./gradlew :app:ktlintCheck`는 이번 변경과 무관한 `CreatorRankingTopCardView.kt:11` 기존 unused import로 FAIL.
- 2026-06-30 content feed clipping 위치 수정 검증: `docs/agent-guides/code-style.md`의 XML `android:clipToOutline` 금지 규칙에 맞춰 `view_feed_content.xml` 속성을 제거하고 `FeedContentView` Kotlin 코드에서 root `clipToOutline`/`outlineProvider`를 설정했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.widget.feed.FeedViewTest"`, `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `git diff --check` PASS.

View File

@@ -238,6 +238,12 @@ Figma `24:5682` 기준 상단 title bar와 tab bar는 기존 홈 화면 구조
- `PHOTO_CONTENT`는 기존 `FeedItem.Content`의 category 확장 또는 팔로잉 전용 item 추가 중 더 작은 변경을 구현 계획에서 선택한다.
- 각 섹션의 “더보기” chevron은 터치 액션만 연결하고, 실제 이동 목적지는 아직 만들지 않는다.
#### 2026-06-30 후속 수정 Requirements
- `CREATOR_RANKING` 최근 소식 본문은 순위 숫자만 단독 표시하지 않고, Figma `24:5717` 기준으로 크리에이터 이름과 순위를 포함한 문장형 메시지를 표시한다.
- ranking 문장 안의 순위 텍스트는 기존 `FeedRankTextStyler` highlight range로 강조한다.
- `AUDIO_CONTENT` 최근 소식은 Figma `1229:27212` 기준으로 `88dp` 콘텐츠 이미지, `14dp` 카드 padding/gap, `20dp` 프로필 이미지, 프로필과 제목 사이 `6dp` 간격을 유지한다.
- 이번 수정은 팔로잉 탭 최근 소식 feed 표시 정합성 보완으로 한정하고 API 계약, 라우팅, 로그인 유도 정책은 변경하지 않는다.
### 재사용 가능한 v2 위젯 후보
PRD 작성 전 확인한 `v2` 패키지 하위 재사용 후보는 다음과 같다.