NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #293 most downloaded on pub.dev
A universal Flutter barcode and QR code scanner using CameraX/ML Kit for Android, AVFoundation/Apple Vision for iOS & macOS, and ZXing for web.
Last release 22 days ago
14 Sep 2026
Release timing varies
gaps range from 9 days to 5 months
Nearly every release is documented
notes for 58 of the last 60 stable releases
3 versions withdrawn
withdrawn after publishing
5 years old
86 releases · first in 2022
Fixed bug where onDetect method was being called multiple times
Bugs fixed:
namespace attribute to the build.gradle.Improvements:
One column per quarter.
[iOS] Updated GoogleMLKit/BarcodeScanning to 4.0.0
Improvements:
Bugs fixed:
[iOS] Fixed a bug that caused a crash when switching from camera.
Bugs fixed:
[iOS] No longer automatically focus on faces.
Improvements:
This big release contains all improvements from the beta releases. In addition to that, this release contains:
This big release contains all improvements from the beta releases. In addition to that, this release contains:
Improvements:
Fixes a permission bug on Android where denying the permission would cause an infinite loop of permission requests.
Fixes:
Features:
errorBuilder to the MobileScanner widget that can be used to customize the error state of the preview. (Thanks @navaronbracke !)The onPermissionSet argument of the MobileScannerController is now deprecated.
Deprecated:
onStart method has been renamed to onScannerStarted.onPermissionSet argument of the MobileScannerController is now deprecated.BREAKING CHANGES:
MobileScannerException now uses an errorCode instead of a message.MobileScannerException now contains additional details from the original error.MobileScannerController.start() to throw MobileScannerExceptions
with consistent error codes, rather than string messages.
To handle permission errors, consider catching the result of MobileScannerController.start().autoResume attribute has been removed from the MobileScanner widget.
The controller already automatically resumes, so it had no effect.MobileScannerCallback and MobileScannerArgumentsCallback typedef.jsqr library with zxing-js for full barcode support.Improvements:
called stop while already stopped messages.Features:
scanWindow to the MobileScanner() widget.placeholderBuilder function to the MobileScanner widget to customize the preview placeholder.autoStart parameter to MobileScannerController(). If set to false, controller won't start automatically.hasTorch function on MobileScannerController(). After starting the controller, you can check if the device has a torch.torchEnabled parameter from MobileScannerController() on iOSWebBarcodeReaderBase class and changing barCodeReader property in MobileScannerWebPluginFixes:
MobileScannerController.stop() throwing when already stopped.MobileScannerController.toggleTorch() throwing if the device has no torch.
Now it does nothing if the torch is not available.MobileScanner would keep listening to the barcode events.MobileScanner preview depending on all attributes of MediaQueryData.
Now it only depends on its layout constraints.onPermissionSet in MobileScanner widget is deprecated and will be removed. Use the onPermissionSet onPermissionSet callback in MobileScannerController…
BREAKING CHANGES:
Features:
Other improvements:
[Android] SDK updated to SDK 33.
BREAKING CHANGES:
Features:
Other changes:
Nothing published for this version
This version is only compatible with flutter 3.0.0 and later.
BREAKING CHANGES:
This version is only compatible with flutter 3.0.0 and later.
Nothing published for this version
This version is the last version that will run on Flutter 2.x
This version is the last version that will run on Flutter 2.x
Bugfixes:
This version uses the MLKit play-services model on Android in order to save space. With the example app, this version reduces the release version from
This version uses the MLKit play-services model on Android in order to save space. With the example app, this version reduces the release version from 14.9MB to 7MB. More information: https://developers.google.com/ml-kit/vision/barcode-scanning/android
Update camera dependency for Android.
Bugfixes:
This version uses the MLKit play-services model on Android in order to save space. With the example app, this version reduces the release version from
This version uses the MLKit play-services model on Android in order to save space. With the example app, this version reduces the release version from 14.9MB to 7MB. More information: https://developers.google.com/ml-kit/vision/barcode-scanning/android
Fix for 'stream already listened to' exception.
Bugfixes:
This version adds a new allowDuplicates option which now defaults to FALSE. this means that it will only call onDetect once after a scan. If you still
BREAKING CHANGES:
This version adds a new allowDuplicates option which now defaults to FALSE. this means that it will only call onDetect once after a scan. If you still want duplicates, you can set allowDuplicates to true. This also means that you don't have to check for duplicates yourself anymore.
New features:
Bugfixes:
You can provide a path to controller.analyzeImage(path) in order to scan a local photo from the gallery! Check out the example app to see how you can
You can provide a path to controller.analyzeImage(path) in order to scan a local photo from the gallery! Check out the example app to see how you can use the image_picker plugin to retrieve a photo from the gallery. Please keep in mind that this feature is only supported on Android and iOS.
Another feature that has been added is a format selector! Just keep in mind that iOS for now only supports 1 selected barcode.
Fixed crash after asking permission. #29
MobileScannerArguments is now exported. #7
mobile_scanner is now compatible with sdk >= 2.12 and flutter >= 2.2.0
mobile_scanner is now compatible with sdk >= 2.12 and flutter >= 2.2.0
We now have MacOS support using Apple's Vision framework! Keep in mind that for now, only the raw value of the barcode object is supported.
We now have MacOS support using Apple's Vision framework! Keep in mind that for now, only the raw value of the barcode object is supported.
Bugfixes:
* Added some API docs and README * Updated the example app
You can select the camera you want to use
Fixed on iOS:
Initial release! Things working on Android:
Initial release! Things working on Android:
Things working on iOS:
Your coding agent can read these notes before it upgrades. Set up the MCP server →