docs(home): 팔로잉 크리에이터 전체 버튼을 기록한다

This commit is contained in:
2026-06-30 17:43:29 +09:00
parent 658b4f0a9d
commit e6cb94179b
2 changed files with 57 additions and 0 deletions

View File

@@ -582,6 +582,58 @@
---
### Phase 8: 팔로잉 크리에이터 전체 버튼 후속 추가
- [x] **Task 8.1: PRD 반영과 RED 테스트 추가**
- 수정:
- `docs/20260625_메인_홈_팔로잉_탭/prd.md`
- `docs/20260625_메인_홈_팔로잉_탭/plan-task.md`
- `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeFollowingFragmentSourceTest.kt`
- 작업:
- 팔로잉 크리에이터 RecyclerView 마지막 item에 `전체` 버튼을 항상 추가하는 후속 요구사항을 문서화한다.
- `전체` 버튼 layout이 `wrap_content`, creator item과 동일한 높이, `paddingHorizontal=16dp`, `@color/soda_400`를 갖는지 source test로 고정한다.
- adapter가 creator item과 all item view type을 분리하고 마지막 item count를 보장하는지 source test로 고정한다.
- `전체` 버튼 클릭이 기존 `FollowingCreatorActivity`로 연결되는지 source test로 고정한다.
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"`
- Expected: 구현 전 RED 실패.
- Result: RED 확인. `following creators list appends all button as last item``item_home_following_creator_all.xml` 누락으로 실패했다.
- [x] **Task 8.2: 팔로잉 크리에이터 전체 버튼 구현**
- 수정:
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeFollowingCreatorAdapter.kt`
- `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt`
- `app/src/main/res/layout/item_home_following_creator_all.xml`
- 작업:
- `HomeFollowingCreatorAdapter`에 creator/all view type을 추가한다.
- `submitItems()`에 1개 이상 creator가 들어오면 adapter 마지막 item으로 `전체` 버튼을 표시한다.
- `전체` 버튼은 `width=wrap_content`, creator item과 동일한 높이, `paddingHorizontal=16dp`, `textColor=@color/soda_400`를 XML에 명시한다.
- `전체` 버튼 클릭 시 `ensureMainV2NavigationAllowed` 안에서 `FollowingCreatorActivity`를 시작한다.
- 검증:
- Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"`
- Expected: PASS.
- Result: PASS. adapter creator/all view type, 마지막 `전체` item, `FollowingCreatorActivity` 이동 연결, `전체` layout token이 source test로 검증됐다.
- [x] **Task 8.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 또는 기존 unrelated failure만 발생.
- 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`는 최초 sandbox 실행에서 Gradle wrapper lock 권한 오류로 실패했고, 승인 실행 재시도에서 PASS.
- 2026-06-30 팔로잉 크리에이터 `전체` 버튼 후속 검증: `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `git diff --check` PASS. `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.
- 2026-06-30 팔로잉 크리에이터 `전체` 버튼 높이 보정 후 재검증: creator item 전체 높이에 맞추기 위해 invisible nickname spacer를 추가했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"`, `./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. `mergeDebugResources`는 최초 sandbox lock 권한 오류 후 승인 실행으로 PASS했고, `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.
---
## 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.
@@ -594,3 +646,5 @@
- 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.
- 2026-06-30 팔로잉 크리에이터 `전체` 버튼 후속 검증: 팔로잉 크리에이터 RecyclerView 마지막에 `전체` item을 추가하고 `FollowingCreatorActivity` 이동을 연결했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"` RED/GREEN, `./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. `mergeDebugResources`는 최초 sandbox lock 권한 오류 후 승인 실행으로 PASS했고, `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.
- 2026-06-30 팔로잉 크리에이터 `전체` 버튼 높이 보정 후 재검증: `전체` item root는 `wrap_content` 높이로 두고 invisible nickname spacer로 creator item 전체 높이를 맞췄다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"`, `./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. `mergeDebugResources`는 최초 sandbox lock 권한 오류 후 승인 실행으로 PASS했고, `ktlintCheck`에서는 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다.