flutter_barcode_scanner_sdk 0.3.0
flutter_barcode_scanner_sdk: ^0.3.0 copied to clipboard
High-throughput barcode and QR scanner SDK for Flutter apps.
0.3.0 #
August 6, 2026 #
Breaking changes:
- The scan window is sized by
widthFractionandaspectRatioinstead of a rect or width/height factors, so it keeps its shape on every preview. The framed region changes on upgrade. aimModedefaults tocrosshair: a barcode is reported only when it covers the centre of the scan window.requestCameraPermission()returns a status instead of a bool.freezePreviewWhenPausedis removed.
See MIGRATION.md.
New:
onScanValidateruns the scan → validate → accept/reject loop, holding detection for the whole check and resuming afterwards.- Camera permission reports five states, with
checkCameraPermission(),openAppSettings()and apermissionBuilder. keepScreenOn,duplicateScanCooldown,scanConfirmationFrames, and synchronous scanner state throughcontroller.stateListenable.
Fixed:
- iOS returned a neighbouring barcode when several were in frame. It now decodes with Vision,
which reports every barcode in a frame;
AVCaptureMetadataOutputreturns only one. - The camera no longer stops on
AppLifecycleState.inactive.
Compatibility:
UNSUPPORTED_FORMATSis now almost unreachable on iOS, and detection there is throttled to 15 passes per second.
See What's new in 0.3.0 for details and examples.
0.2.1 #
August 2, 2026 #
Fixed:
- Full-screen scanning no longer stops a running embedded scanner on Android.
- Android no longer leaks ML Kit detectors or camera buffers across mount/unmount cycles.
- Cosmetic configuration changes no longer restart the Android camera.
- A zero-size scanner parent reports
PREVIEW_UNAVAILABLEinstead of retrying forever. - iOS format filtering is honoured instead of falling back to all detectable types, and reports
UNSUPPORTED_FORMATSwhen none are supported. - iOS keeps UPC-A and EAN-13 distinct when only one is requested.
- iOS recovers from capture-session interruptions and
mediaServicesWereReset. - Cancelled and error results report
unknowninstead ofqrCode.
Deprecated:
freezePreviewWhenPausedis now a no-op and will be removed in 0.3.0. See MIGRATION.md.
Compatibility:
- Migrated to AGP 9 built-in Kotlin; the plugin no longer pins Kotlin or AGP versions.
0.2.0 #
July 14, 2026 #
Breaking changes:
FlutterBarcodeScannerFormat.unknownwas added, so exhaustiveswitchstatements over the format enum must handle it. See MIGRATION.md.
New:
nativeFormatonFlutterBarcodeScanResultcarries the original native identifier, so a format this package version does not recognize is no longer reported as a different one.
Fixed:
- Embedded controller replacement no longer loses the attached platform view.
- Runtime camera state is preserved across configuration updates.
- Scan-window validation is consistent across Android, iOS, and the Flutter overlay.
- UPC-A reporting is more accurate.
- Permission, lifecycle, torch, and camera-switch handling are hardened on both platforms.
Compatibility:
- CameraX upgraded to 1.6.1.
- Package compatibility metadata and the CocoaPods podspec corrected.
0.1.2 #
July 14, 2026 #
Fixed:
- An iOS
AVCaptureSessioncrash caused by metadata output configuration racing with camera startup. - Embedded scanner metadata updates, layout updates, and disposal are serialized with capture session startup and shutdown.
0.1.1 #
June 4, 2026 #
Fixed:
- Dense 1D barcode scanning in full-screen and embedded modes.
- iOS embedded scan-window filtering for long linear barcodes.
0.1.0 #
June 3, 2026 #
Initial public release.
New:
- Full-screen native barcode scanning for Android and iOS.
- An embedded scanner widget with controller-driven camera, detection, flash, camera switching, and configuration updates.
- Support for QR Code, Code 128, Code 39, Code 93, EAN-13, EAN-8, UPC-A, UPC-E, ITF, PDF417, Data Matrix, and Aztec formats.
- Package documentation, API reference, example app coverage, and tests.