v2.0.0
react-native-vision-camera-mlkit v2.0.0
This is a major, breaking release. It moves the library off the legacy TurboModule bridge onto VisionCamera v5 + Nitro Modules. If you're on v1, read docs/migration-v1-to-v2.md before upgrading — VisionCamera v4 users should stay on a v1 tag until they can move their camera integration to v5.
Core rewrite
- Migrated to VisionCamera v5's
useFrameOutput+ Nitro Modules, replacing the olduseFrameProcessor/TurboModule integration. - React Native bumped to 0.86.
Features
- Live-frame ML Kit recognition wired for both platforms (text recognition and barcode scanning).
- Barcode scanning added as a full feature family (previously text-recognition-only).
- Shared Region-of-Interest (ROI) cropping for both text recognition and barcode scanning — crop processing to a rectangle of the frame/image before running ML Kit, with results always mapped back to full source coordinates.
- Static-image processing (
processImageTextRecognition/processImageBarcodeScanning) with EXIF-aware orientation handling and full-resolution downsampling.
Selective, compile-time-optional installs
- Text recognition and barcode scanning are each independently installable on both platforms — disabling one genuinely removes its native SDK from the build (not just at runtime), keeping binary size down for consumers who only need one feature.
- New Expo config plugin mirrors the same selective configuration into the generated
android/build.gradle/ios/Podfileduringexpo prebuild, so Expo users don't have to hand-edit native config. - See docs/selective-mlkit-install.md and docs/expo-plugin.md.
Fixes
- iOS image-orientation correctness for static images.
- Android: full
BoundingBoxfield population in Nitro conversions, bitmap-recycling and ML Kit detector concurrency fixes, a redundant iOS render-pass removal. - A cross-Worklet-Runtime closure bug affecting frame processing.
- CocoaPods/Bottom Sheet dependency swap in the example app.
CI/build hardening
Fixed a number of build failures uncovered while auditing this branch for release-readiness: iOS Xcode version pinning, Bundler/Ruby compatibility, Turborepo environment-variable passthrough, an xcodebuild destination-string bug, an Android codegen duplicate-class bug, and a missing Android CMake dependency.
Docs & metadata
Refreshed README/package.json/GitHub repository description and topics to reflect the Nitro architecture, selective install, and the new Expo plugin.
Full diff: v1.0.0...v2.0.0