From 50b45d04e5011cc221980c3f86c678f939905adb Mon Sep 17 00:00:00 2001 From: klaus Date: Thu, 25 Jun 2026 23:34:32 +0900 Subject: [PATCH] =?UTF-8?q?docs(home):=20=ED=8C=94=EB=A1=9C=EC=9E=89=20?= =?UTF-8?q?=ED=83=AD=20UI=20=EA=B2=80=EC=A6=9D=EC=9D=84=20=EA=B8=B0?= =?UTF-8?q?=EB=A1=9D=ED=95=9C=EB=8B=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- docs/20260625_메인_홈_팔로잉_탭/plan-task.md | 33 ++++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/docs/20260625_메인_홈_팔로잉_탭/plan-task.md b/docs/20260625_메인_홈_팔로잉_탭/plan-task.md index 58ddebcb..e743f747 100644 --- a/docs/20260625_메인_홈_팔로잉_탭/plan-task.md +++ b/docs/20260625_메인_홈_팔로잉_탭/plan-task.md @@ -315,7 +315,7 @@ ### Phase 4: 팔로잉 탭 UI surface와 adapter 연결 -- [ ] **Task 4.1: Fragment source RED 테스트 작성** +- [x] **Task 4.1: Fragment source RED 테스트 작성** - 생성: - `app/src/test/java/kr/co/vividnext/sodalive/v2/main/home/HomeFollowingFragmentSourceTest.kt` - 테스트 케이스: @@ -327,8 +327,9 @@ - 검증: - Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"` - Expected: layout/fragment 수정 전 RED 실패. + - Result: RED 확인. layout ID와 `HomeMainFragment` 팔로잉 wiring 미구현 상태에서 6개 source test가 모두 실패했다. -- [ ] **Task 4.2: 팔로잉 content layout 추가** +- [x] **Task 4.2: 팔로잉 content layout 추가** - 수정: - `app/src/main/res/layout/fragment_v2_main_home.xml` - 생성: @@ -346,8 +347,9 @@ - 검증: - Run: `./gradlew :app:mergeDebugResources` - Expected: 신규 layout/resource가 merge된다. + - Result: PASS. `nsv_home_following_content`, 5개 섹션 RecyclerView, 6개 item layout이 resource merge를 통과했다. -- [ ] **Task 4.3: 팔로잉 adapter 구현** +- [x] **Task 4.3: 팔로잉 adapter 구현** - 생성: - `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/ui/HomeFollowingLiveAdapter.kt` @@ -363,8 +365,9 @@ - 검증: - Run: `./gradlew :app:compileDebugKotlin` - Expected: 신규 adapter가 컴파일된다. + - Result: PASS. 팔로잉 creator/live/chat/schedule/news adapter 5개가 `compileDebugKotlin`에서 컴파일됐다. -- [ ] **Task 4.4: HomeMainFragment에 팔로잉 탭 연결** +- [x] **Task 4.4: HomeMainFragment에 팔로잉 탭 연결** - 수정: - `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt` - 작업: @@ -378,8 +381,9 @@ - 검증: - Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.HomeFollowingFragmentSourceTest"` - Expected: PASS. + - Result: PASS. 팔로잉 ViewModel 주입, adapter 연결, 탭 surface 전환, 최초 1회 load, login-required/empty/error 섹션 숨김, content 섹션 binding이 source test로 검증됐다. -- [ ] **Task 4.5: UI routing skeleton 연결** +- [x] **Task 4.5: UI routing skeleton 연결** - 수정: - `app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt` - 작업: @@ -390,19 +394,23 @@ - 검증: - Run: `rg -n "openFollowing|onFollowing|HomeFollowingSection|openCreatorProfile|HOME_TAB_FOLLOWING" app/src/main/java/kr/co/vividnext/sodalive/v2/main/home/HomeMainFragment.kt` - Expected: 팔로잉 item click과 more click 콜백 함수가 확인된다. + - Result: PASS. creator click은 `openCreatorProfile`, recent chat click은 기존 AI/DM chat 진입 flow로 연결했고 live/schedule/news/more click은 route 없는 callback skeleton으로 유지했다. + - 검증 기록: + - 2026-06-25 Phase 4 코드 리뷰: Figma `24:5682`와 PRD 기준으로 `On Air` 시작 시간, 이달의 스케줄 프로필/타입 label/On Air 상태, 최근 소식 label/title 바인딩 누락을 확인했다. 누락 항목은 `HomeFollowingFragmentSourceTest` RED로 고정한 뒤 adapter/layout 최소 수정으로 보완했다. + - 2026-06-25 Phase 4 재코드 리뷰: 현재 워킹트리 기준 `HomeMainFragment`, 팔로잉 adapter 5개, 팔로잉 layout, `HomeFollowingFragmentSourceTest`를 Figma `24:5682`/PRD와 대조했으며 blocking finding은 발견하지 못했다. --- ### Phase 5: 통합 검증과 문서 기록 -- [ ] **Task 5.1: 팔로잉 관련 단위 테스트 실행** +- [x] **Task 5.1: 팔로잉 관련 단위 테스트 실행** - 검증: - Run: `./gradlew :app:testDebugUnitTest --tests "kr.co.vividnext.sodalive.v2.main.home.*Following*"` - Expected: 팔로잉 관련 local unit/source test가 모두 PASS. - 검증 기록: - - 실행 후 결과를 이 task 아래에 한국어로 누적 기록한다. + - 2026-06-25 Phase 4 리뷰 보완 후 실행 결과 PASS. 팔로잉 관련 local unit/source test가 모두 통과했다. -- [ ] **Task 5.2: 리소스/컴파일/린트 검증** +- [x] **Task 5.2: 리소스/컴파일/린트 검증** - 검증: - Run: `./gradlew :app:mergeDebugResources` - Expected: 신규 layout/string resource merge PASS. @@ -413,7 +421,10 @@ - Run: `git diff --check` - Expected: whitespace error 없음. - 검증 기록: - - 실행 후 결과를 이 task 아래에 한국어로 누적 기록한다. + - 2026-06-25 Phase 4 리뷰 보완 후 `./gradlew :app:mergeDebugResources` PASS. 최초 sandbox lock 권한 오류 후 승인 실행으로 통과했다. + - 2026-06-25 Phase 4 리뷰 보완 후 `./gradlew :app:compileDebugKotlin` PASS. + - 2026-06-25 Phase 4 리뷰 보완 후 `./gradlew :app:ktlintCheck` PASS. 기존 `.editorconfig disabled_rules` deprecation warning만 출력됐다. + - 2026-06-25 Phase 4 리뷰 보완 후 `git diff --check` PASS. - [ ] **Task 5.3: Figma 기준 수동 확인** - 확인: @@ -427,10 +438,12 @@ - `isLoginRequired` 상태에서 팔로잉 섹션 content는 표시되지 않는다. - 더보기 chevron 터치 시 앱이 크래시하지 않고 화면 이동은 발생하지 않는다. - 검증 기록: - - 수동 확인 결과를 이 task 아래에 한국어로 누적 기록한다. + - 2026-06-25 Figma `24:5682` 디자인 컨텍스트와 스크린샷 기준 정적 대조를 수행했다. 실제 기기/에뮬레이터에서의 수동 화면 확인은 아직 실행하지 않았다. --- ## 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. +- 2026-06-25 Phase 4 코드 리뷰 및 검증: Figma `24:5682` 기준 UI 필드 바인딩 누락을 보완했고, `./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 4 재코드 리뷰 및 검증: blocking finding 없음. Figma `24:5682` 디자인 컨텍스트/스크린샷과 현재 Phase 4 변경을 정적 대조했고, `./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했다.