React Native SDK
React Native SDK 소개
Petnow React Native 카메라 UI 패키지의 구조와 기술 요구사항을 소개합니다.
최신 버전
| 패키지 | 버전 |
|---|---|
@petify/react-native-camera-ui | 1.4.5 |
Server API 권장: 반려동물 등록·인증·식별 등 펫 관리는 서버에서 Server API로 수행하세요. 클라이언트는 카메라 UI로 촬영만 담당합니다.
패키지 특징
@petify/react-native-camera-ui는 iOS/Android 네이티브 카메라 SDK(CameraController + CameraView)를 감싸는 UI 레이어 래퍼입니다. 카메라 프리뷰, 탐지 오버레이(코/얼굴 마커·진행 링), 유도 사운드를 그대로 제공합니다.
- hook 기반 API:
usePetnowCamera({ apiKey })가 라이선스와 검출 커맨드를 소유하는 컨트롤러 핸들을 반환합니다. - bare 컴포넌트:
<CameraView camera={...} />가 네이티브 프리뷰+오버레이를 렌더합니다. - 단일 하드웨어 세션 자동 관리: RN 뷰는 네비게이션·리렌더·핫리로드로 자주 죽고 살아나지만, 카메라 세션은 패키지가 싱글톤으로 관리하므로 뷰가 소유하지 않습니다. 마지막 detach 후 짧은 grace 동안 세션을 재사용해 재초기화 비용을 줄입니다. 다만 Android는 가장 최근 attach된 뷰만 프리뷰를 가지므로, 전환 중 이전/새 뷰의 프리뷰가 잠깐 비는 구간이 있을 수 있습니다.
SDK 구조
주요 구성요소
usePetnowCamera({ apiKey })- 라이선스를 보유하고 검출 커맨드를 노출하는 컨트롤러 핸들을 반환합니다.
camera.state로 SDK 준비 상태를 노출합니다.
<CameraView camera={camera} ... />- 컨트롤러에 바인딩되어 네이티브 프리뷰+탐지 오버레이를 렌더합니다.
- 마운트 시 카메라가 초기화되고, 언마운트 시 정리됩니다.
2계층 수명주기
카메라(뷰 수명)가 바깥 계층이고, 검출은 그 안에서 도는 하위 수명주기입니다.
- 카메라는 뷰 수명을 따릅니다(마운트 =
initializeCamera, 언마운트 =finalize). - 검출은 마운트 시 자동으로 시작되며, 이후 일시정지·재개·재촬영(
startDetection)은 hook 커맨드로 제어합니다(pauseDetection은 진행률을 보존).
기술 요구사항
- React Native: 0.75 ~ 0.86.x + New Architecture(Fabric/TurboModules) 활성화 (0.86은 React 19 및 SDK 1.4.4 이상 필요)
- Android: minSdk 28 이상. 호스트 액티비티가
PermissionAwareActivity여야 함(RN 기본ReactActivity가 충족 — 별도FragmentActivity요구 없음) - iOS: 16.4 이상
- Petnow API 키 (미발급 시 support@petnow.io 문의)