W1 Task 1 Windows 가능 범위 완료. 핵심 파일: - package.json: lapie name + scripts(start/ios/android/web/test/typecheck) - app.json: bundleIdentifier com.lapie.app + iOS 권한 3종 (NSCameraUsageDescription, NSPhotoLibraryUsageDescription, NSPhotoLibraryAddUsageDescription) - tsconfig.json: strict + noUncheckedIndexedAccess + types:["jest"] - jest.config.js: jest-expo preset - src/__tests__/sanity.test.ts: jest 동작 검증용 (W1 Task 3에서 실제 테스트로 대체 예정) 의존성: - expo ~56.0.4, react 19.2.3, react-native 0.85.3 - react-native-vision-camera ^5.0.10 - @shopify/react-native-skia 2.6.2 - react-native-worklets-core ^1.6.3 - react-native-gesture-handler ~2.31.1 - react-native-safe-area-context ~5.7.0 - zustand ^5.0.13 - jest ^29.7.0, jest-expo ^56.0.4, @types/jest ^30 SDK 버전은 v0-plan(2026-05-23 작성)의 표기보다 상향: - Expo SDK 52 → 56 (작업 시점 최신 stable) - RN 0.76 → 0.85, TS 5 → 6 - vision-camera v4 → v5, skia v1 → v2.6 plan은 "7월 착수 직전 재검토" 명시 — 작업 시점 최신 적용. 검증: - npx tsc --noEmit: 무에러 - npm test: sanity 1 passed 다음 단계 (Mac): - npx expo prebuild --platform ios - npx expo run:ios --device - W1 Task 2 (vision-camera 카메라 화면 + 권한) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
33 lines
1.1 KiB
JSON
33 lines
1.1 KiB
JSON
{
|
|
"expo": {
|
|
"name": "Lapie",
|
|
"slug": "lapie",
|
|
"version": "0.0.1",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/icon.png",
|
|
"userInterfaceStyle": "light",
|
|
"ios": {
|
|
"supportsTablet": false,
|
|
"bundleIdentifier": "com.lapie.app",
|
|
"infoPlist": {
|
|
"NSCameraUsageDescription": "옷을 카메라에 비춰 합성 미리보기에 사용합니다.",
|
|
"NSPhotoLibraryUsageDescription": "정면 사진을 등록하고 캡쳐를 저장하기 위해 사용합니다.",
|
|
"NSPhotoLibraryAddUsageDescription": "합성 결과 사진을 저장하기 위해 사용합니다."
|
|
}
|
|
},
|
|
"android": {
|
|
"package": "com.lapie.app",
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#E6F4FE",
|
|
"foregroundImage": "./assets/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/android-icon-background.png",
|
|
"monochromeImage": "./assets/android-icon-monochrome.png"
|
|
},
|
|
"predictiveBackGestureEnabled": false
|
|
},
|
|
"web": {
|
|
"favicon": "./assets/favicon.png"
|
|
}
|
|
}
|
|
}
|