Latest Version
Latest version changes for the SDK
The iOS and Android SDKs are currently versioned separately (the React Native package is aligned with the native UI module version). They will move to a unified version in the future.
Latest release: v1.5.1
๐ฆ Version Info
| Module | iOS | Android |
|---|---|---|
| UI Module | v1.5.1 | v1.5.1 |
React Native (@petify/react-native-camera-ui): v1.5.1
Release date: 2026-10-15
Highlights (v1.5.1)
A patch release over 1.5.0. No public API changed โ swap the artifact and rebuild.
๐ Fixed
- A failed capture reports the reason again. A frame reports every reason it failed, and the share each reason held was computed against the number of reasons rather than the number of frames โ so a session failing for two reasons at once capped each below the threshold and the host received a generic error.
- Memory could accumulate across repeated registrations. Images collected during a capture were not released when the capture screen was left. Measured on Android at roughly 52 MB per camera open/close cycle, now 0.3 MB.
Highlights (v1.5.0)
Android: rebuild the app, do not swap the AAR
1.5 is not binary-compatible on Android. An app compiled against 1.4.5 whose AAR is replaced with 1.5, without being rebuilt, starts normally and then throws NoSuchMethodError the first time it constructs a configuration. Rebuild against 1.5 โ there is nothing to change in the source. โ v1.4 โ v1.5 Migration
โจ Common
enableFakeDetectionnow defaults totrue. Spoof (photo, screen, print) detection is on unless you passfalse, which was the 1.4.5 behavior in reverse. Review your call sites: a flow tested against photographs of pets will start failing.LicenseInfo.environmentpicks the backend.production(default) orstaging, so a staging-console key can be used against staging. Restores what v1.3.x had asisDebugMode.- One API key per process. A second, different key is refused instead of silently replacing the first (
PetnowUIError.MultipleApiKeys/.multipleApiKeys). difficultyModeis deprecated and ignored (iOS/AndroidDetectionConfiguration, React Native<CameraView>). Existing code still compiles; it goes in the next major release.- Performance figures for diagnostics.
CameraControllerexposesperformanceStats(camera init time, first-frame time, processed-frame fps, detector ms) โ aStateFlow<CameraPerformanceStats>on Android and a@Publishedproperty on iOS.
๐ค Android
DetectionConfiguration.inferenceTier(AUTO/CPU/GPU, defaultAUTO) selects the detector path.AUTOpicks the path that suits the device and falls back if that path is unavailable. It is read once, when the process creates its first detector engine, and fixed from then on. The chosen tier is reported inCameraPerformanceStats.inferenceTier.LicenseInfo(apiKey, environment)โPetnowEnvironment.PRODUCTION/.STAGING.io.petnow.ui.sound.SoundPlayerplays the guidance sounds without a camera controller.CameraController.playSound()/stopSound()are deprecated. โ Sound Guide
๐ iOS
CameraController.performanceStats(CameraPerformanceStats,@Published).LicenseInfo(apiKey:environment:)โ.production/.staging.CameraOpticsPolicyand the adaptive rear-camera mode are removed. Rear lens selection behaves as in 1.4.3.
โ๏ธ React Native
- The
onRealtimeServerIqaDiagnosticprop and theRealtimeServerIqa*types are removed. Nothing replaces them. usePetnowCamera({ apiKey, environment })โ'production'(default) or'staging'.difficultyModeprop is deprecated and never reaches native.
Highlights (v1.4.5)
The first release that ships the iOS/Android UI modules and the React Native package together since v1.4.0.
โ๏ธ React Native
- Fixes the Android app build on RN 0.82+, keeping the full 0.75 โ 0.86.x range buildable.
- Carries React Native 0.86 / React 19 support (shipped as 1.4.4).
- Also includes the
showDetectionMarkerprop (1.4.3).
Highlights (v1.4.0)
A release focused on internal structure improvements and stabilization.
โจ Common
- Detection behaviors such as pause/resume, session handling, and difficulty mode now work identically on iOS and Android.
- License validation and initialization error handling are now aligned across platforms โ Android also validates the API key server-side in
initializeCamera(), and throws initialization failures as aPetnowUIError, matching the iOS error model. โ Android Changelog
โ๏ธ React Native
- First release of
@petify/react-native-camera-uiv1.4.0 โ a camera UI package built on the New Architecture (Fabric/TurboModules). It wraps the iOS/Android UI modules v1.4.0.
Highlights (v1.3.2)
๐ Android Bug Fixes
- Fixed camera teardown crash: Resolved an issue where the app intermittently crashed when closing the camera
- Stability improvements
๐ iOS
- No code changes (version sync)
Highlights (v1.3.1)
๐ Android Bug Fixes
- Fixed camera preview display error: Resolved an issue where the preview was not displayed at the correct aspect ratio when entering the camera
๐ iOS
- No code changes (version sync)
Highlights
โจ Common Improvements
V2 API Integration
- Both iOS and Android updated to the server API V2 spec
- Switched to a session-based workflow
UI/UX Improvements
- Enhanced customization capabilities
- Added sound playback feature
๐ iOS Highlights
UI Module v1.3.0 (v1.2.2 โ v1.3.0)
โจ Added
- Overlay customization: Place custom UI on top of the detection area
- Sound control:
playSound,stopSoundAPI - Detection state tracking: Provides progress (
currentCount) and detection area coordinates (detectedObjectNormalizedRect)
๐ง Changed
- Improved initialization flow: Added the
isInitializedproperty and guaranteed waiting forinitializeCamera()to complete (the completion of initializeCamera() now marks the completion of initialization.) - AVCaptureSession external injection support: In cross-platform environments, you can configure the Preview first and then inject the Session
- Reduced fake detection false positives: Relaxed thresholds
- Added failure reasons: Added new status values to the
DetectionFailureReasonenum
๐งน Cleanup
- Removed unused properties
For details, see the iOS Changelog.
๐ค Android Highlights
UI Module v1.3.0 (v1.2.4 โ v1.3.0)
โจ Added
- Overlay customization: Place custom UI on top of the detection area with
provideFloatingGuideLayout() - Sound control:
playSound,stopSoundAPI - Detection state tracking: Provides real-time detection state and detection area coordinates
๐ Fixed
- Fixed an issue where settings were not preserved when switching cameras
- Fixed an issue where the
onDetectionFinishedcallback was called on a background thread - Fixed ObjectDetector errors
- Added failure reasons: Added new status values to the
DetectionStatusenum
For details, see the Android Changelog.
Migration Guide
- v1.4.x โ v1.5.0: v1.4 โ v1.5 Migration
- v1.3.x โ v1.4.0: v1.3 โ v1.4 Migration
Full History by Platform
For detailed per-version changes, see the pages below:
- iOS Changelog - Full release history of the iOS SDK
- Android Changelog - Full release history of the Android SDK