Skip to content

feat: 네이티브 바텀탭 제거 → 단일 웹뷰 셸 + 앱 버전 브릿지#21

Open
seongwon030 wants to merge 1 commit into
mainfrom
feature/webview-shell-migration
Open

feat: 네이티브 바텀탭 제거 → 단일 웹뷰 셸 + 앱 버전 브릿지#21
seongwon030 wants to merge 1 commit into
mainfrom
feature/webview-shell-migration

Conversation

@seongwon030
Copy link
Copy Markdown
Member

@seongwon030 seongwon030 commented Jun 2, 2026

요약

홍보·알림 위치 ABCD 실험의 선결 조건인 웹 셸 이관의 RN 측 작업. 네이티브 바텀 탭바를 제거하고 홈 웹뷰를 단일 풀스크린 호스트로 만든다. 바텀 네비게이션(홈/구독/메뉴)은 이제 웹이 렌더한다.

변경

  • app/(tabs) 탭 레이아웃 및 네이티브 구독/메뉴 화면 제거 → app/index.tsx가 홈 웹뷰 단일 호스트
  • app/_layout.tsx Stack/anchor를 (tabs)index로, 동아리 상세·웹뷰 back 폴백을 /
  • ui/home/home-webview-screen.tsxREQUEST_APP_VERSION → APP_VERSION 핸들러 추가 (웹 메뉴 페이지 앱 버전 표시용)
  • ui/subscribe/* 제거 (웹이 대체)

관련

  • 프론트엔드: Moadong/moadong #1631~#1634 (웹 바텀나브 + 구독/메뉴 페이지 + APP_VERSION 브릿지)

검증

  • npx tsc --noEmit: 본 변경 관련 신규 에러 0건 (남은 에러는 기존 무관 파일: column/row/auth-token)
  • ⚠️ 런타임(Expo 빌드) 확인 권장: 단일 웹뷰 부팅 + 바텀나브 전환 + 앱버전 왕복

참고

  • iOS pods/xcode(ios/*) 및 .omc/ 변경은 이 작업과 무관하여 커밋에서 제외함

Summary by CodeRabbit

릴리스 노트

  • New Features

    • 웹뷰에 앱 버전 정보 전달 기능 추가
  • Refactor

    • 하단 탭 네비게이션 구조 제거 및 앱 라우팅 체계 단순화
    • 구독 기능 전체 제거 및 관련 UI 컴포넌트 삭제
    • 앱의 초기 진입점을 탭 기반 구조에서 단일 인덱스 페이지로 변경

- (tabs) 탭 레이아웃 및 구독/메뉴 네이티브 화면 제거, app/index.tsx로 홈 웹뷰 단일 호스트
- _layout Stack/anchor를 index로, 상세/웹뷰 back 폴백을 /로 변경
- home-webview-screen에 REQUEST_APP_VERSION→APP_VERSION 핸들러 추가
- ui/subscribe 제거(웹이 대체)
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented Jun 2, 2026

Review Change Stack

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 274e0231-73b5-447f-8b47-922962b084ea

📥 Commits

Reviewing files that changed from the base of the PR and between fda613a and f6e8495.

📒 Files selected for processing (16)
  • app/(tabs)/_layout.tsx
  • app/(tabs)/explore.tsx
  • app/(tabs)/index.tsx.backup
  • app/(tabs)/more.tsx
  • app/_layout.tsx
  • app/index.tsx
  • app/webview/[slug].tsx
  • ui/club-detail/club-detail-screen.tsx
  • ui/home/home-webview-screen.tsx
  • ui/subscribe/components/empty-state.tsx
  • ui/subscribe/components/index.ts
  • ui/subscribe/components/subscribed-club-list.tsx
  • ui/subscribe/hook/index.ts
  • ui/subscribe/hook/use-subscribe-screen.ts
  • ui/subscribe/index.ts
  • ui/subscribe/subscribe-screen.tsx
💤 Files with no reviewable changes (11)
  • app/(tabs)/index.tsx.backup
  • ui/subscribe/hook/index.ts
  • app/(tabs)/explore.tsx
  • ui/subscribe/components/index.ts
  • app/(tabs)/_layout.tsx
  • ui/subscribe/components/subscribed-club-list.tsx
  • ui/subscribe/hook/use-subscribe-screen.ts
  • ui/subscribe/subscribe-screen.tsx
  • ui/subscribe/components/empty-state.tsx
  • app/(tabs)/more.tsx
  • ui/subscribe/index.ts

워크스루

이 PR은 Expo 앱의 네비게이션 구조를 하단 탭 기반에서 단일 인덱스 기반의 웹뷰 중심 아키텍처로 마이그레이션합니다. 루트 라우팅 앵커를 (tabs)에서 index로 변경하고, 홈 화면 컴포넌트를 재명명하며, 웹뷰 메시지 처리를 추가하고, 폴백 네비게이션 경로를 업데이트합니다.

변경사항

라우팅 구조 및 진입점 마이그레이션

레이어 / 파일 요약
루트 레이아웃 라우팅 앵커 및 초기 화면
app/_layout.tsx
unstable_settingsanchor 값을 (tabs)에서 index로, 루트 Stack.Screenname(tabs)에서 index로 변경하여 새로운 라우팅 진입점을 설정합니다.
홈 화면 컴포넌트 내보내기 및 웹뷰 설정
app/index.tsx, ui/home/home-webview-screen.tsx
기본 내보내기를 HomeTab에서 Home으로 재명명하고, REQUEST_APP_VERSION 웹뷰 메시지에 응답하여 Constants.expoConfig?.versionAPP_VERSION으로 전송하는 핸들러를 추가합니다.
폴백 네비게이션 경로 업데이트
app/webview/[slug].tsx, ui/club-detail/club-detail-screen.tsx
handleBack 폴백 목적지를 /(tabs)/more/(tabs)에서 루트 경로 /로 변경하여 새로운 비탭 라우팅 구조에 맞춥니다.

예상 코드 리뷰 노력

🎯 2 (Simple) | ⏱️ ~12분

관련 이슈

  • Moadong/moadong#1626: 두 변경사항 모두 동일한 코드 수준의 마이그레이션을 구현합니다 - 네이티브 하단 탭 레이아웃 제거 및 단일 풀스크린 웹뷰 호스트로 전환(웹뷰에 APP_VERSION 메시지 핸들러 추가 포함).

관련 PR

  • Moadong/moadong-react-native#6: 본 PR이 app/(tabs)/_layout.tsxTabLayout을 완전히 제거하는 반면, 검색된 PR은 동일 파일의 하단 탭 구성/동작(아이콘, 라벨, 스타일링, 탭 클릭 트래킹)만 수정하므로 탭 레이아웃 구현 수준에서 직접 겹칩니다.
  • Moadong/moadong-react-native#1: 두 PR 모두 app/(tabs)/_layout.tsx 및 구독 화면/컴포넌트 영역에서 탭/구독 동작을 추적하기 위한 로직(특히 Mixpanel 이벤트 처리)을 다루거나 그 대상을 직접 제거/변경하므로 코드 수준에서 강하게 연관됩니다.
  • Moadong/moadong-react-native#15: 본 PR이 ui/home/home-webview-screen.tsx의 웹뷰 메시지 처리(REQUEST_APP_VERSIONAPP_VERSION 응답 추가)를 변경한 점이, 검색된 PR의 홈 탭 WebView 전환 및 해당 컴포넌트/메시지 프로토콜 도입과 코드 레벨에서 직접 맞물리므로 관련됩니다.

추천 리뷰어

  • oesnuj
  • SeongHoonC
  • lepitaaar
🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed PR 제목은 네이티브 바텀탭 제거와 단일 웹뷰 셸 + 앱 버전 브릿지 추가라는 주요 변경사항을 명확하게 요약합니다.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/webview-shell-migration

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

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