Skip to content

fix(mobile): Android 스플래시 전환 깜빡임 및 로고 크기 보정 - #177

Merged
dennis0405 merged 2 commits into
developfrom
fix/android-splash-handoff
Oct 5, 2026
Merged

dennis0405 merged 2 commits into
developfrom
fix/android-splash-handoff

Conversation

@dennis0405

@dennis0405 dennis0405 commented Sep 30, 2026 •

Copy link
Copy Markdown
Collaborator

작업 내용

  • Android 시스템 스플래시와 React 진입 애니메이션의 심볼 크기(81dp), 시작 위치를 맞췄습니다.
  • React 레이아웃과 브랜드 이미지 4개의 로딩이 끝난 후 네이티브 스플래시를 해제하고 애니메이션을 시작합니다.
  • 네이티브 pre-draw 대기에는 10초 fail-open을 두고, Activity 종료 시 타이머를 정리합니다. 기존 modal splash dialog는 사용하지 않습니다.
  • Android 12+ 시스템 스플래시 리소스와 이전 버전용 window background를 분리했습니다.
  • 준비 상태/중복 이미지 이벤트/화면 크기별 시작 위치 테스트 5개를 추가했습니다.

변경 이유

  • develop 기반 devRelease APK에서 네이티브 로고와 React 심볼의 크기가 바뀌고 첫 React 프레임에서 심볼이 늦게 나타나는 현상을 재현했습니다.
  • iOS #172와 같은 시작 화면 연결 문제를 Android 시스템 스플래시에 맞게 해결했습니다. 최초 구현은 #172와 독립적으로 작성했으며, 10/5에 #172가 포함된 develop을 병합했습니다. 최신 develop 대비 iOS 네이티브 코드는 변경하지 않았습니다.
  • 10/5 통합 시 공유 컴포넌트 충돌을 해소하고 플랫폼별 애니메이션 훅·viewport·로그인 배치를 분리했습니다.

최초 테스트한 내용 (9/30)

  • API 36 arm64 Pixel 8 에뮬레이터, 개발 서버 devRelease(번들 내장) 설치 및 콜드 스타트 전후 영상 비교: 로고 크기/위치 연결 및 이미지 누락 해소 확인.
  • 기본 1080×2400 / 420dpi에서 로그인 화면 도달, 게스트 홈 진입, 백그라운드→복귀 확인.
  • 720×1280 / 320dpi 및 animator_duration_scale=0에서 로그인 화면 도달 확인. 테스트 후 에뮬레이터 설정 복원.
  • pnpm fix → pnpm verify: 27 suites / 153 tests 통과, lint/typecheck 통과.
  • pnpm verify:full: Android/iOS JS bundle 생성까지 통과.
  • ENVFILE=.env.local ./gradlew :app:assembleDevRelease 성공.
  • Android 실기기, API 30 이하, 로그인된 계정의 자동 진입, 강제 이미지 실패/10초 fallback은 이번 런타임 QA 범위에 포함하지 않았습니다.

스크린샷 (선택)

  • 수정 전후 녹화와 캡처는 로컬 artifacts/qa-2026-09-30/에 보관했습니다. 환경 파일/APK/QA 산출물은 커밋하지 않았습니다.
  • 후속 이슈: 360×640dp 로그인 화면에서 문구와 로고가 겹칩니다. 수정 전 develop APK에서도 동일하게 확인되어 이번 전환 수정에서는 기존 레이아웃을 유지했습니다.

체크

  • 검증 범위 내 정상 동작 확인
  • 전체 화면 크기에서 UI 깨짐 없음 (작은 화면의 기존 겹침은 후속 필요)
  • 테스트 중 AndroidRuntime/ReactNativeJS 오류 없음

develop 병합 및 충돌 해결 (10/5)

  • 기준: develop 5f8aefe1 → PR 커밋 86724bb2. ios 스플래시 이미지 애니메이션 전환 문제 해결 #172 iOS splash 및 디자인 QA 수정사항 반영 #176 디자인 QA 변경 유지.
  • iOS는 clone layout/load 후 native hide, Android는 layout + 4개 브랜드 asset 이벤트 후 native ready. 해당 플랫폼의 준비 완료 후에만 intro 시작.
  • 기본 애니메이션 훅은 develop의 iOS 계산을 유지하고, .android.ts는 기존 #177의 Android 계산을 유지합니다. 타입 제거 후 각 기준 코드와 동일함을 정적 비교했습니다.
  • iOS 390×844 / Android 402×874 viewport 및 플랫폼별 로그인·게스트 버튼 Y 좌표 보존.
  • 테스트 29 suites / 167 tests, lint/typecheck, 양 플랫폼 JS bundle 통과. 생성 bundle에서 플랫폼별 훅 선택 확인.
  • Android Debug 및 devRelease 네이티브 빌드 성공. API36 에뮬레이터 새 devRelease 콜드 스타트 → 로그인 화면 도달 확인.
  • 초기 에뮬레이터 실행에서 System UI 응답 없음 팝업이 발생해 해당 캡처는 통과 근거에서 제외했습니다. Wait 이후 재실행 녹화에서는 팝업 없이 스플래시→로그인 전환을 확인했습니다.
  • 회귀 검증: Android viewport/로그인 위치 테스트는 보정 전 실패·보정 후 통과. handoff 준비 조건을 제거한 mutation에서 4개 테스트 실패 후 원복·전체 통과.
  • 새 커밋의 CI 4개(lint-and-typecheck, build-web, Android/iOS bundle)가 모두 통과했고 GitHub에서 CLEAN / MERGEABLE로 확인했습니다.
  • iOS Local 시뮬레이터 네이티브 빌드도 성공했습니다(Xcode, CODE_SIGNING_ALLOWED=NO). iOS 실행 화면 및 양 플랫폼 실기기 재QA는 미완료입니다. JS 상태 테스트는 native frame timing/effect cleanup 검증을 대체하지 않습니다.
  • 기존 작은 화면 겹침, 로그인 계정 자동 진입·권한 이전 딥링크·강제 업데이트·10초 fallback 런타임 재QA는 이번 검증 범위 밖입니다.
  • 로컬 QA 산출물: artifacts/qa-2026-10-05-pr177/ (커밋 제외).

Retain iOS clone readiness and 390x844 geometry from #172, isolate Android animation styles and preserve its 402x874 layout and native readiness gate. Add platform handoff and layout regressions.
@dennis0405
dennis0405 merged commit ce0a86a into develop Oct 5, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant