feat(mobile): Phase M-1 모바일 프로젝트 기반 + V3 마스터 플랜

- V3 모바일 마스터 플랜 작성 (docs/v3/00-mobile-master-plan.md)
  11개 Phase, 5주 로드맵, 전략 결정사항 확정
- 7개 디자인 HTML 레퍼런스 저장 (docs/v3/designs/)
- app.json → app.config.ts 전환 + 환경변수 체계
- 5탭 네비게이션 (DASH/HIST/REC FAB/TALK/SET)
- metro.config.js monorepo 격리 (root RN 0.84 충돌 해결)
- ui-native 테마 디자인 목업 색상 동기화
- SafeArea 적용 (useSafeAreaInsets)
- DEV 로그인 우회 (__DEV__ 전용)
- Supabase .env 연동
- iOS 시뮬레이터 검증 완료
This commit is contained in:
윤찬 2026-04-13 03:22:15 +09:00
parent ffca07d120
commit 211673bc6c
30 changed files with 15010 additions and 525 deletions

View file

@ -0,0 +1,36 @@
// apps/mobile/metro.config.js
// Monorepo 호환 Metro 설정
// 핵심: root node_modules의 react-native 0.84를 절대 참조하지 않도록 격리
const { getDefaultConfig } = require('expo/metro-config')
const path = require('path')
const projectRoot = __dirname
const monorepoRoot = path.resolve(projectRoot, '../..')
const config = getDefaultConfig(projectRoot)
// packages 디렉토리만 watch (root node_modules는 watch하지 않음!)
config.watchFolders = [
path.resolve(monorepoRoot, 'packages/core'),
path.resolve(monorepoRoot, 'packages/ui-native'),
path.resolve(monorepoRoot, 'packages/i18n'),
path.resolve(monorepoRoot, 'packages/api-client')
]
// node_modules: 로컬만 사용
config.resolver.nodeModulesPaths = [
path.resolve(projectRoot, 'node_modules')
]
// packages 내에서 import하는 모든 모듈을 로컬 node_modules로 강제
config.resolver.extraNodeModules = new Proxy(
{},
{
get: (_target, name) => {
return path.resolve(projectRoot, 'node_modules', String(name))
}
}
)
module.exports = config