docs(live): 복귀 동작 계획을 갱신한다
This commit is contained in:
@@ -9,7 +9,7 @@
|
||||
|
||||
## 구현 원칙
|
||||
|
||||
- `enterRoom` API와 성공 처리 대신 라이브룸의 렌더링 계층을 수정한다.
|
||||
- `enterRoom`의 API 요청·응답 처리는 유지하고, 전역 overlay와 충돌하는 navigation side effect만 분리한다.
|
||||
- 전역 라이브룸은 한 곳에서만 생성한다.
|
||||
- 표시 계층 이동으로 가려질 수 있는 기존 외부 이동 확인 다이얼로그도 같은 최상위 계층으로 옮긴다.
|
||||
- 키보드 처리 방식은 새로 만들지 않고, 현재 수동 offset과 충돌하는 safe area 적용 위치만 바로잡는다.
|
||||
@@ -127,6 +127,44 @@
|
||||
- 라이브룸이 화면 전체를 덮는다.
|
||||
- 키보드 표시 시 입력창이 키보드 바로 위에 위치하고 큰 빈 공간이 없다.
|
||||
|
||||
### Phase 6: 라이브 종료 후 입장 전 화면 복원
|
||||
|
||||
- [x] **Task 6.1: 공용 입장 성공 처리에서 navigation 초기화 제거**
|
||||
- 대상 파일:
|
||||
- 수정: `SodaLive/Sources/Live/LiveViewModel.swift`
|
||||
- 수정: `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
- 작업 내용:
|
||||
- 입장 성공 시 `roomId`와 `isShowPlayer`만 갱신한다.
|
||||
- 공용 `enterRoom` 내부의 `setAppStep(.main)` 호출을 제거한다.
|
||||
- 검증 기준:
|
||||
- 앱 내부 진입점이 현재 navigation path를 유지한 채 전역 라이브룸을 표시한다.
|
||||
|
||||
- [x] **Task 6.2: 콜드 스타트 라이브 푸시의 메인 전환 명시**
|
||||
- 대상 파일:
|
||||
- 수정: `SodaLive/Sources/Splash/SplashView.swift`
|
||||
- 작업 내용:
|
||||
- 스플래시에서 `pushRoomId`를 로컬 값으로 소비한다.
|
||||
- `.main`을 설정한 뒤 소비한 room ID로 입장을 진행한다.
|
||||
- 검증 기준:
|
||||
- 기존 콜드 스타트 푸시가 스플래시에 머물지 않고 메인 위 라이브룸으로 진입한다.
|
||||
|
||||
- [x] **Task 6.3: 정적 검사 및 Debug 빌드**
|
||||
- 대상 파일:
|
||||
- 확인: `SodaLive/Sources/Live/LiveViewModel.swift`
|
||||
- 확인: `SodaLive/Sources/Explorer/Profile/UserProfileViewModel.swift`
|
||||
- 확인: `SodaLive/Sources/Splash/SplashView.swift`
|
||||
- 검증 기준:
|
||||
- `git diff --check`가 성공한다.
|
||||
- `SodaLive-dev` Debug 빌드가 `** BUILD SUCCEEDED **`로 완료된다.
|
||||
|
||||
- [ ] **Task 6.4: 진입점별 수동 복귀 검증**
|
||||
- 대상 화면:
|
||||
- 홈/라이브 탭, 라이브 상세, 크리에이터 채널, 프로필
|
||||
- 콜드 스타트 및 포그라운드 라이브 푸시
|
||||
- 검증 기준:
|
||||
- 일반 입장은 종료 후 입장 직전 화면을 표시한다.
|
||||
- 푸시 입장은 호출부에 정의된 navigation 정책을 유지한다.
|
||||
|
||||
## 검증 기록
|
||||
|
||||
- 2026-07-14: 코드 조사 결과 `LiveRoomViewV2`가 `MainView` 내부에 있어 navigation destination보다 아래에 놓이는 표시 계층 문제와, `ScreenCaptureSecureContainer` 바깥의 시스템 키보드 회피 및 내부 수동 offset이 중복될 수 있는 구조를 확인했다. 구현 및 빌드 검증은 아직 수행하지 않았다.
|
||||
@@ -138,3 +176,6 @@
|
||||
- 2026-07-14: 사용자 재검증에서 라이브룸이 화면 전체를 덮지 않고 키보드 위 빈 공간도 남는 것을 확인했다. 바깥 `ScreenCaptureSecureContainer`와 내부 `UIHostingController`가 별도의 safe area 경계를 가지므로 바깥 modifier 이동만으로는 부족했다.
|
||||
- 2026-07-14: `ScreenCaptureSecureContainer`를 전체 화면 frame으로 확장하고 모든 바깥 safe area를 무시하도록 보정했다. 내부 `UIHostingController.safeAreaRegions`는 `.container`로 제한해 상태 표시줄/홈 인디케이터 safe area는 유지하면서 키보드 자동 회피만 제외했다.
|
||||
- 2026-07-14: 보정 후 `git diff --check`가 성공했고, `xcodebuild -workspace SodaLive.xcworkspace -scheme SodaLive-dev -configuration Debug -derivedDataPath /tmp/SodaLiveDerivedData build`에서 `** BUILD SUCCEEDED **`를 확인했다. Task 5.2의 실제 화면 확인은 사용자 수동 재검증이 필요하다.
|
||||
- 2026-07-14: 사용자 재검증에서 크리에이터 채널로 입장한 라이브 종료 후 메인이 표시되는 문제를 확인했다. 종료 처리가 이동한 것이 아니라 공용 `enterRoom`의 `setAppStep(.main)`이 입장 시 navigation path를 미리 삭제한 것이 원인이었다.
|
||||
- 2026-07-14: 일반 입장은 현재 화면을 보존하도록 공용 입장 구현 두 곳에서 navigation 초기화를 제거했다. 2025년 콜드 스타트 라이브 푸시 보정의 의도는 `SplashView`에서 `pushRoomId` 소비와 `.main` 전환을 명시하는 방식으로 유지했다.
|
||||
- 2026-07-14: 변경 후 `git diff --check`가 성공했고, `xcodebuild -workspace SodaLive.xcworkspace -scheme SodaLive-dev -configuration Debug -derivedDataPath /tmp/SodaLiveDerivedData build`에서 `** BUILD SUCCEEDED **`를 확인했다. Task 6.4의 진입점별 종료 복귀와 푸시 진입은 실제 앱 수동 검증이 필요하다.
|
||||
|
||||
Reference in New Issue
Block a user