# @d3ro/mobile — D3RO Voice Mobile (Expo) D3RO Voice의 React Native (Expo) 앱. **npm workspace에서 제외됨** — Expo의 무거운 native 의존성 때문에 별도 install 필요. ## 설치 ```bash cd apps/mobile npm install ``` ## 실행 ```bash # Expo dev server 실행 (브라우저에 QR 표시) npm start # iOS 시뮬레이터 npm run ios # Android 에뮬레이터 npm run android ``` ## Supabase 설정 `app.json`의 `expo.extra`에 환경변수를 추가하거나, EAS Secrets 사용: ```json { "expo": { "extra": { "supabaseUrl": "https://your-project.supabase.co", "supabaseAnonKey": "eyJ..." } } } ``` 또는 `app.config.ts`로 변환해서 process.env에서 읽기. ## 화면 구성 | Route | 설명 | |---|---| | `/` | 진입점, auth 상태에 따라 리다이렉트 | | `/login` | OAuth (Google/GitHub) 로그인 | | `/(tabs)/meetings` | 회의 리스트 (Supabase fetch) | | `/(tabs)/record` | 녹음 (expo-av) → stt-proxy | | `/(tabs)/profile` | 사용자 정보 + 로그아웃 | ## OAuth 콜백 `app.json`의 `scheme: "d3ro-voice"`로 deep link 등록. Supabase Auth providers의 redirect URL에 다음 추가: - `d3ro-voice://auth-callback` - `https://auth.expo.io/@your-username/d3ro-voice` (Expo Go 사용 시) ## 빌드 (EAS) ```bash npm install -g eas-cli eas login eas build:configure eas build --platform ios eas build --platform android ``` ## 의존성 비고 `@d3ro/core`, `@d3ro/i18n`, `@d3ro/api-client` 등 monorepo 패키지는 향후 file: link로 재사용 예정. 현재 V2-6 MVP는 코드 중복 (lib/supabase.ts) 허용. ## V2-6 MVP 한계 - DS 컴포넌트 (`@d3ro/ui`)는 MUI 기반이라 RN에서 미사용. 별도 `@d3ro/ui-native` 패키지가 V2-6b에서 필요. - 푸시 알림 미구현 (V2-6b) - 회의 상세 화면 미구현 (V2-6b) - 오프라인 캐싱 미구현 (V2-6b)