docs(creator): 채널 홈 세부 구현 계획을 갱신한다
This commit is contained in:
@@ -334,6 +334,42 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- list 필드가 빈 배열이면 섹션 자체를 숨길지 빈 상태를 표시할지는 기존 홈/크리에이터 화면 정책을 우선 따른다.
|
||||
- SNS URL 문자열이 빈 값이면 해당 SNS 진입 아이콘 또는 버튼은 비활성/숨김 처리한다.
|
||||
|
||||
### Home Tab Content Rebuild
|
||||
탭 바 아래 `홈` 컨텐츠는 기존 `CreatorChannelHomeSectionAdapter` 내부 동적 View 조립 구현을 삭제하고, Figma `296:14895`에 배치된 컴포넌트 성격의 UI를 Android XML/ViewBinding 기반으로 다시 구성한다.
|
||||
|
||||
#### Requirements
|
||||
- 재구성 기준 Figma 노드는 `296:14895`이다.
|
||||
- 기존 `item_creator_channel_home_*.xml` 12개가 동일한 섹션 컨테이너만 갖는 구조는 유지하지 않는다.
|
||||
- 기존 `CreatorChannelHomeSectionAdapter` 내부에서 `addHeroCard`, `createContentTile`, `addFeedCard`, `addScheduleRow`, `addDonationCard`, `addCommentCard`, `addActivityRow`처럼 섹션별 UI를 직접 조립하던 구현은 제거 대상으로 본다.
|
||||
- 각 홈 섹션은 하나의 Task로 분리해 문서화하고, 각 Task는 해당 섹션이 사용하는 Figma Component 또는 Figma에서 확인되는 반복 구조를 Android View로 옮기는 작업만 포함한다.
|
||||
- 섹션 제목은 Figma `SectionTitle` 컴포넌트를 기준으로 구성한다.
|
||||
- 컨텐츠 썸네일 카드 계열은 Figma `Contents` 컴포넌트를 기준으로 구성한다.
|
||||
- 커뮤니티 게시글은 Figma `Feed` 구조를 기준으로 구성한다.
|
||||
- 팬Talk 요약은 Figma `ListComment` 컴포넌트를 기준으로 구성한다.
|
||||
- SNS 영역은 Figma `SNS` 컴포넌트를 기준으로 구성한다.
|
||||
- 공통 컴포넌트는 재사용 가능한 Android View 또는 재사용 layout으로 먼저 정의하고, 섹션 adapter는 데이터 바인딩과 view type 선택만 담당한다.
|
||||
- 기존에 만들어 둔 공용 Android View가 Figma 컴포넌트와 요구사항을 만족하면 우선 재사용한다. 바로 재사용할 수 없으면 어댑터 내부 조립 대신 해당 Figma 컴포넌트에 맞는 신규 View/layout을 만든다.
|
||||
- Figma `296:14895`에 `화보` 섹션이 보이더라도 현재 홈 API 응답과 탭 범위에는 화보 데이터가 없으므로 이번 재구성 구현 범위에서는 제외한다. 추후 API 필드가 추가되면 별도 PRD/TASK로 다룬다.
|
||||
|
||||
#### Section Requirements
|
||||
- 현재 라이브 섹션은 `SectionTitle`과 Figma의 라이브 카드 구조를 기준으로 하며, `currentLive`가 null이면 표시하지 않는다.
|
||||
- 최신 오디오 섹션은 Figma의 88dp 이미지 list row 구조를 기준으로 하며, `latestAudioContent`가 null이면 표시하지 않는다.
|
||||
- 후원 섹션은 후원자 프로필, 닉네임, 후원 메시지, 후원 수량을 Figma list/comment 계열 스타일에 맞춰 표시한다.
|
||||
- 공지 섹션은 공지 본문, 날짜, 이미지/잠금 상태가 있는 경우의 표시 정책을 Figma list/feed 계열 구조에 맞춰 정의한다.
|
||||
- 일정 섹션은 일정 타입 label, 제목, 일시를 Figma list row 구조에 맞춰 표시한다.
|
||||
- 오디오 컨텐츠 섹션은 Figma `Contents(type=audio, size=s)` 또는 88dp list row 중 Figma `296:14895`의 해당 섹션 구조를 따른다.
|
||||
- 시리즈 섹션은 Figma `Contents(type=series, size=m)` 구조를 사용하고, `isOriginal`, `isNew`, `isPopular`, `isComplete` 상태를 tag/label 표시 정책에 연결한다.
|
||||
- 커뮤니티 섹션은 Figma `Feed` 구조를 사용하고, 프로필, 작성자, 작성 시간, 본문, 이미지, 유료 잠금, 좋아요/댓글 reaction을 표시한다.
|
||||
- 팬Talk 섹션은 Figma `ListComment` 구조를 사용하고, 전체 count와 최신 댓글 1개를 표시한다.
|
||||
- 소개 섹션은 카드 배경 없이 Figma 본문 텍스트 영역처럼 표시한다.
|
||||
- 활동 섹션은 Figma의 배경 없는 label/value row 목록을 기준으로 표시한다.
|
||||
- SNS 섹션은 Figma `SNS` 순서와 52dp 원형 아이콘 규격을 따른다.
|
||||
|
||||
#### Edge Cases
|
||||
- API 필드가 null이거나 빈 list이면 해당 섹션은 기본적으로 숨긴다. Figma에 별도 empty UI가 확인되거나 사용자 요구가 추가되면 섹션별 Task에 명시한다.
|
||||
- Figma component와 기존 Android 공용 View의 모델 타입이 다르면 adapter 내부에서 View를 직접 조립하지 말고 mapper 또는 section 전용 bind API를 둔다.
|
||||
- 섹션별 Task는 다른 섹션의 리팩터링을 포함하지 않는다.
|
||||
|
||||
### CreatorActivityType Commonization
|
||||
홈 추천 API에서 사용 중인 `RecommendedActivityType`은 크리에이터 채널 홈 API의 `CreatorActivityType`과 동일한 의미를 가지므로 공용 타입으로 정리한다.
|
||||
|
||||
@@ -399,6 +435,8 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- title-bar와 tab-bar의 실제 거리 및 프로필 이미지가 절반 이상 사라진 상태를 기준으로 title-bar 배경색이 black으로 변경된다.
|
||||
- `RecommendedActivityType`은 공용 `CreatorActivityType`으로 변경되고, 홈 추천 API와 크리에이터 채널 홈 API가 같은 타입을 참조한다.
|
||||
- `라이브`, `오디오`, `시리즈`, `커뮤니티`, `팬Talk`, `후원` 탭 상세 화면은 이번 구현 범위로 사용되지 않는다.
|
||||
- 탭 바 아래 홈 컨텐츠는 Figma `296:14895` 기준으로 기존 동적 조립 UI를 삭제하고 섹션별 Figma component 기반 UI로 재구성된다.
|
||||
- 홈 컨텐츠 재구성에서 `화보` 섹션은 현재 API 응답에 데이터가 없으므로 구현 범위에서 제외한다.
|
||||
|
||||
---
|
||||
|
||||
@@ -411,6 +449,7 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
|
||||
## 12. References
|
||||
- 전체 페이지 Figma: https://www.figma.com/design/HmN1yNdJ3EIpqknFL0Hkab/-%EA%B3%B5%EC%9C%A0%EC%9A%A9-%EB%B3%B4%EC%9D%B4%EC%8A%A4%EC%98%A8-UI-UX-%EA%B8%B0%ED%9A%8D%EB%AC%B8%EC%84%9C?node-id=296-14890&m=dev
|
||||
- 홈 탭 컨텐츠 Figma: https://www.figma.com/design/HmN1yNdJ3EIpqknFL0Hkab/-%EA%B3%B5%EC%9C%A0%EC%9A%A9-%EB%B3%B4%EC%9D%B4%EC%8A%A4%EC%98%A8-UI-UX-%EA%B8%B0%ED%9A%8D%EB%AC%B8%EC%84%9C?node-id=296-14895&m=dev
|
||||
- 팔로우 상태가 아닐 때 Figma: https://www.figma.com/design/HmN1yNdJ3EIpqknFL0Hkab/-%EA%B3%B5%EC%9C%A0%EC%9A%A9-%EB%B3%B4%EC%9D%B4%EC%8A%A4%EC%98%A8-UI-UX-%EA%B8%B0%ED%9A%8D%EB%AC%B8%EC%84%9C?node-id=296-14287&m=dev
|
||||
- 팔로우 중 + 알림 받기 중 Figma: https://www.figma.com/design/HmN1yNdJ3EIpqknFL0Hkab/-%EA%B3%B5%EC%9C%A0%EC%9A%A9-%EB%B3%B4%EC%9D%B4%EC%8A%A4%EC%98%A8-UI-UX-%EA%B8%B0%ED%9A%8D%EB%AC%B8%EC%84%9C?node-id=296-14288&m=dev
|
||||
- 팔로우 중 + 알림 받기 중이 아닐 때 Figma: https://www.figma.com/design/HmN1yNdJ3EIpqknFL0Hkab/-%EA%B3%B5%EC%9C%A0%EC%9A%A9-%EB%B3%B4%EC%9D%B4%EC%8A%A4%EC%98%A8-UI-UX-%EA%B8%B0%ED%9A%8D%EB%AC%B8%EC%84%9C?node-id=296-14289&m=dev
|
||||
@@ -437,3 +476,4 @@ tab-bar는 스크롤 중 title-bar 하단에 고정되는 sticky 영역으로
|
||||
- 2026-06-13: 백엔드 `CreatorActivityType` 원본 enum이 `LIVE`, `AUDIO`, `COMMUNITY`, `LIVE_REPLAY` 대문자 상수와 동일한 `code`를 사용함을 확인해 Android Gson enum 파싱용 별도 TypeAdapter는 추가하지 않기로 판단했다.
|
||||
- 2026-06-13: 사용자 추가 요청에 따라 신규 크리에이터 채널 홈 패키지를 `kr.co.vividnext.sodalive.v2.creatorchannel`에서 `kr.co.vividnext.sodalive.v2.creator.channel`로 변경했다.
|
||||
- 2026-06-13: 사용자 확인에 따라 백엔드 `CreatorActivityType` 원본 enum과 동일한 대문자 code 계약을 API 계약/기술 제약에 명시했다. 이후 코드리뷰에서는 별도 서버 계약 변경 근거가 없는 한 크리에이터 채널 홈 DTO의 `CreatorActivityType` 직접 사용과 Gson enum TypeAdapter 부재를 대소문자 대응 문제로 제기하지 않는다. 이번 단계는 문서 수정만 수행했으며 빌드/테스트는 실행하지 않았다.
|
||||
- 2026-06-15: 사용자 요청에 따라 탭 바 아래 홈 컨텐츠를 기존 동적 조립 UI에서 Figma `296:14895`의 `SectionTitle`, `Contents`, `Feed`, `ListComment`, `SNS` 컴포넌트 기반 UI로 전면 재구성하는 요구사항을 추가했다. 이번 단계는 문서 수정만 수행했으며 구현/빌드/테스트는 실행하지 않았다.
|
||||
|
||||
Reference in New Issue
Block a user