docs(home): 응원 크리에이터 검증을 기록한다
This commit is contained in:
@@ -328,6 +328,20 @@
|
||||
- 빈 creator group은 숨기고 최대 5개 장르 group만 표시한다.
|
||||
- 검증: `HomeMainFragmentLayoutTest`에 genre page 치수/gradient/grid/snap/helper/filtering 회귀 테스트를 추가한다.
|
||||
|
||||
- [x] **Task 6.13: 최근 응원이 많은 크리에이터 Figma 정합 추가 수정**
|
||||
- 기준: Figma `24:5636`
|
||||
- 수정: `app/src/main/res/layout/fragment_v2_main_home.xml`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/HomeMainFragment.kt`
|
||||
- 수정: `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/ui/HomeCheerCreatorAdapter.kt`
|
||||
- 생성 후보: `app/src/main/res/layout/item_home_cheer_creator_group.xml`
|
||||
- 생성 후보: `app/src/main/res/drawable/bg_home_cheer_creator_group.xml`
|
||||
- 구현 내용:
|
||||
- 섹션은 특정 width로 고정하지 않고 화면 폭을 채우며 horizontal padding으로 card 폭을 조정한다.
|
||||
- `최근 응원이 많은 크리에이터` card는 `14dp` padding/radius/gap, `gray_900` 배경을 적용한다.
|
||||
- creator profile은 장르 크리에이터와 유사한 simple profile grid로 표시하고 최대 8명만 노출한다.
|
||||
- 모두 팔로우 버튼은 card 내부 하단에 포함하고 기존 기본/완료 상태를 유지한다.
|
||||
- 검증: `HomeMainFragmentLayoutTest`에 cheer card/grid/width/follow callback 회귀 테스트를 추가한다.
|
||||
|
||||
---
|
||||
|
||||
### Phase 7: FeedCommunityView 추천 페이지 확장
|
||||
@@ -487,6 +501,7 @@
|
||||
- 2026-06-04: Figma `24:5611`, 완료 버튼 `24:9092` 기준 장르 크리에이터 모두 팔로우 버튼을 확인해 기본 상태는 `ic_new_follow`, 투명 배경과 흰색 30% stroke, 흰색 텍스트이고 완료 상태는 `ic_new_following`, 흰색 배경, 검은색 텍스트여야 함을 확인했다. `HomeMainFragmentLayoutTest`에 모두 팔로우 기본/완료 상태와 완료 상태 no-op 회귀 테스트를 먼저 추가했고, 구현 전 `bg_home_follow_all_button` 리소스 미존재로 RED 컴파일 실패를 확인했다.
|
||||
- 2026-06-04: `bg_home_follow_all_button.xml`을 추가하고 `view_home_follow_all_button.xml`의 기본 상태를 Figma 활성 상태로 변경했다. `HomeFollowAllButtonBinder`는 완료 상태에서 `bg_round_corner_999_white`, 검은 텍스트, `ic_new_following`, `모두 팔로우 완료`를 적용하고 터치 시 callback을 호출하지 않도록 수정했다. 이후 `./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을 확인했다. `./gradlew :app:installDebug`는 연결된 기기가 없어 `No connected devices!`로 실패해 실기기 설치 확인은 수행하지 못했다.
|
||||
- 2026-06-04: 사용자 추가 요청에 따라 Figma `24:5611` 기준 `장르의 크리에이터` 섹션을 그룹 단위 snapping card 구조로 수정했다. 구현 전 `HomeMainFragmentLayoutTest`에 genre group card/profile/snapping/filtering/follow callback 회귀 테스트를 추가했고, 기존 구현에서 `item_home_genre_creator_group`, `bg_home_genre_creator_group`, `submitGroups` 등 새 계약 미존재로 RED 컴파일 실패를 확인했다. 이후 `HomeGenreCreatorAdapter`를 group page adapter로 변경하고, `HomePagerSnapRecyclerView`, `item_home_genre_creator_group.xml`, `item_home_genre_creator_profile.xml`, `bg_home_genre_creator_group.xml`을 추가해 각 page에 장르 제목, 8명 grid, 모두 팔로우 버튼, dark-blue gradient, `PagerSnapHelper` snapping을 적용했다. targeted 테스트 최초 재실행에서는 null image가 Coil `ImageLoaderProvider`를 요구해 실패했고, nullable image는 drawable을 명시적으로 비우도록 수정한 뒤 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`가 BUILD SUCCESSFUL임을 확인했다. 추가 검증으로 `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. ktlint 최초 실행은 테스트 파일 긴 줄 2곳으로 실패했고 줄바꿈 수정 후 재실행으로 성공했다. `lsp_diagnostics`는 Kotlin/XML LSP 미구성으로 실행하지 못해 Gradle compile/test/ktlint로 보완했다. 실기기 수동 확인은 연결 기기가 없어 수행하지 못했다.
|
||||
- 2026-06-04: 사용자 추가 요청에 따라 Figma `24:5636` 기준 `최근 응원이 많은 크리에이터` 섹션을 card 내부 profile grid 구조로 수정했다. 구현 전 `HomeMainFragmentLayoutTest`에 cheer card/grid/width/follow callback 회귀 테스트를 추가했고, 기존 구현에서 `item_home_cheer_creator_group`, `bg_home_cheer_creator_group`, `HomeCheerCreatorAdapter(onFollowAllClick)`, `submitSection` 등 새 계약 미존재로 RED 컴파일 실패를 확인했다. 이후 `HomeCheerCreatorAdapter`를 단일 card adapter로 변경하고, `item_home_cheer_creator_group.xml`, `bg_home_cheer_creator_group.xml`을 추가해 `14dp` horizontal padding 기반 full-width card, 최대 8명 4열 grid, card 내부 모두 팔로우 버튼을 적용했다. `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:mergeDebugResources`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`, `./gradlew :app:testDebugUnitTest`, `./gradlew :app:installDebug`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다. `adb shell monkey -p kr.co.vividnext.sodalive.debug -c android.intent.category.LAUNCHER 1`로 설치된 debug 앱 실행까지 확인했다. 리뷰 게이트에서 무조건 승인도 확인했다. `lsp_diagnostics`는 Kotlin/XML LSP 미구성으로 실행하지 못해 Gradle compile/test/ktlint로 보완했다.
|
||||
- 2026-06-04: 리뷰에서 모든 genre group의 creators가 비어 있을 때 adapter는 빈 목록이 되지만 `ll_home_genre_creator_section`이 `VISIBLE`로 남을 수 있다는 차단 이슈를 확인했다. `HomeMainFragmentLayoutTest`에 `visibleHomeGenreCreatorGroups()` all-empty 회귀 테스트를 추가했고, helper 미구현으로 RED 컴파일 실패를 확인했다. 이후 `HomeRecommendationUiModels.kt`에 visible group helper를 추가하고 `HomeMainFragment.bindGenreCreatorSection()`의 visibility와 submit 기준을 같은 filtered/capped 목록으로 맞췄으며, adapter 자체의 empty/max 5 방어도 유지했다. 수정 후 `./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-04: 장르 크리에이터 group card 폭을 고정 `374dp`가 아니라 현재 화면 가로 크기에서 좌우 여백 `28dp`를 뺀 값으로 계산하도록 수정했다. 구현 전 `HomeMainFragmentLayoutTest`의 group layout 계약을 `match_parent`로 바꾸고 adapter item width가 parent width `402dp - 28dp = 374dp`가 되는 회귀 테스트를 추가했으며, 기존 구현에서 XML `374dp` 고정 및 adapter 폭 미계산으로 RED 실패를 확인했다. 이후 `item_home_genre_creator_group.xml` root width를 `match_parent`로 바꾸고 `HomeGenreCreatorAdapter`에서 parent width 기반 `RecyclerView.LayoutParams`를 설정하도록 변경했다. 수정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
- 2026-06-04: 작은 해상도에서 장르 크리에이터 grid의 profile item/image `75dp` 고정값 때문에 4열 끝부분이 잘릴 수 있어, group card 내부 grid 가용 폭에 맞춰 profile cell 크기를 계산하도록 수정했다. 구현 전 `HomeMainFragmentLayoutTest`에 작은 parent width `360dp` 기준 cell size가 `(360 - 28 - 28 - 14*3) / 4`로 계산되는 회귀 테스트를 추가했고, 기존 `75dp` 고정 구현에서 RED 실패를 확인했다. 이후 `item_home_genre_creator_group.xml`의 grid width를 `match_parent`로 변경하고, `HomeGenreCreatorAdapter`에서 card width, padding, column gap을 기준으로 profile item/image width/height를 동적으로 설정하도록 수정했다. `home_genre_creator_profile_size` dimen은 더 이상 사용하지 않아 제거했다. 수정 후 `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeMainFragmentLayoutTest"`, `./gradlew :app:compileDebugKotlin`, `./gradlew :app:ktlintCheck`를 실행했고 모두 BUILD SUCCESSFUL을 확인했다.
|
||||
|
||||
Reference in New Issue
Block a user