NewYour coding agent can read the release notes before it upgrades.Set up the MCP server →
pub.dev · #2522 most downloaded on pub.dev
A QR code scanner that works on both iOS and Android using dart decoder.
Last release 1 months ago
10 Aug 2026
Ships unpredictably
gaps range from 9 days to 10 months
Nearly every release is documented
notes for 50 of 50 stable releases
Nothing withdrawn
no release was ever pulled
5 years old
50 releases · first in 2021
One column per quarter.
ScanResult and BarcodeFormat are now owned by qr_code_dart_decoder (0.3.0) and re-exported here, so both packages speak the same types and zxing_lib i
qr_code_dart_decoderScanResult and BarcodeFormat are now owned by qr_code_dart_decoder (0.3.0) and re-exported here, so both packages speak the same types and zxing_lib is gone from this package's dependencies. Importing from package:qr_code_dart_scan/qr_code_dart_scan.dart keeps working unchanged.
ScanResult.corners is now List<Point<double>> (dart:math) instead of List<Offset>. The decoder is a pure Dart package and cannot depend on dart:ui. New toOffset/toOffsets extensions bridge them:
// before
CustomPaint(painter: MyPainter(result.corners)); // List<Offset>
// now
CustomPaint(painter: MyPainter(result.corners.toOffsets)); // List<Offset>
QRCodeDartScanDecoder no longer speaks zxing_lib. decodeCameraImage and decodeFile return ScanResult? instead of Result?, completing the migration started in 0.13.0.
qr_code_dart_decoder 0.3.0)formats you pass to QRCodeDartScanView/QRCodeDartScanDecoder. The format list was accepted but never reached the reader, so live scanning could return a barcode in a format you had not asked for. If you were relying on that leak, widen formats explicitly.onCapture, onResultInterceptor and formats now use the package's own types, so apps do not need a zxing_lib dependency to consume them.
zxing_lib no longer leaks into the scanner APIonCapture, onResultInterceptor and formats now use the package's own types, so apps do not need a zxing_lib dependency to consume them.
before (zxing_lib) |
now |
|---|---|
Result |
ScanResult |
BarcodeFormat |
BarcodeFormat (own enum, only the 10 supported formats) |
result.barcodeFormat |
result.format |
result.resultPoints (List<ResultPoint?>?) |
result.corners (List<Offset>, never null) |
result.timestamp (int millis) |
result.timestamp (DateTime) |
result.rawBytes (List<int>?) |
result.rawBytes (Uint8List?) |
result.numBits and result.resultMetadata were dropped; nothing in the package used them.Exception.ScanResult keeps identity equality on purpose, so scanning the same code twice still notifies.QRCodeDartScanDecoder still speaks zxing_lib types; only the scanner layer was migrated.Result points accuracy: Fixed resultPoints coordinates to accurately match the QR code position in the camera preview.
resultPoints coordinates to accurately match the QR code position in the camera preview.Performance improvements: Reduced scan interval default from 1s to 200ms (5x faster detection).
qr_code_dart_decoder to 0.2.0 with major performance improvements:
tryHarder: true on first attempt for better success rate.Add image stream watchdog to detect and handle native camera errors when stream stops responding.
imageStreamTimeout parameter to configure watchdog timeout (default 2 seconds).Fix issue CameraException(Disposed CameraController, buildPreview() was called on a disposed CameraController.)
CameraException(Disposed CameraController, buildPreview() was called on a disposed CameraController.)Adds focusPoint in QRCodeDartScanView to set the focus point for the camera preview.
focusPoint in QRCodeDartScanView to set the focus point for the camera preview.- Performance improvements.
Update qr_code_dart_decoder to 0.1.2.
qr_code_dart_decoder to 0.1.2.Adds croppingStrategy in QRCodeDartScanView to crop the image before decode.
croppingStrategy in QRCodeDartScanView to crop the image before decode.qr_code_dart_decoder to 0.1.1.scanInvertedQRCode in QRCodeDartScanView. Now it is always true.Little improvements in QRCodeDartScanView.
QRCodeDartScanView.Adds lockCaptureOrientation default to DeviceOrientation.portraitUp in QRCodeDartScanView.
lockCaptureOrientation default to DeviceOrientation.portraitUp in QRCodeDartScanView.qr_code_dart_decoder.cropRect in QRCodeDartScanView to crop the image before decode.Fix exception: CameraException(Uninitialized CameraController, startImageStream() was called on an uninitialized CameraController.);
Adds videoBitrate and fps in QRCodeDartScanView.
videoBitrate and fps in QRCodeDartScanView.Adds imageDecodeOrientation in QRCodeDartScanView to force read image in landscape or portrait orientation.
imageDecodeOrientation in QRCodeDartScanView to force read image in landscape or portrait orientation.- update README.md
Rename param forceReadPortrait to forceReadLandscape. Read image portrait by default. If forceReadLandscape is true, the image will be read in landsca
forceReadPortrait to forceReadLandscape. Read image portrait by default. If forceReadLandscape is true, the image will be read in landscape mode, helpful to read itf code.Adds onCameraError in QRCodeDartScanView .
onCameraError in QRCodeDartScanView.- Update dependencies.
Fix issue #30. Adds forceReadPortrait in QRCodeDartScanView to force read portrait image.
forceReadPortrait in QRCodeDartScanView to force read portrait image.adds methods toggleFlash,setFlash,setFlashAuto in QRCodeDartScanController.
toggleFlash,setFlash,setFlashAuto in QRCodeDartScanController.- Fix stopImageStream exception.
stopImageStream exception.Adds method stopScan and startScan in QRCodeDartScanController.
stopScan and startScan in QRCodeDartScanController.isLiveScan.changeCamera exception.- Fix issue #28 - Fix issue #29
Update camera pluggin to 0.11.0
0.11.0itf.- Fix camera preview scale.
- Remove debug prints
fix app life circle issue 26. Thanks Ömral Cörüt !
QRCodeDartScanController Improvements
QRCodeDartScanController ImprovementsFuture<void> changeCamera(TypeCamera typeCamera) method in QRCodeDartScanController.intervalScan param in QRCodeDartScanView.onResultInterceptor param in QRCodeDartScanView.Fix issue #18. Thanks MateusLucasDaSilva!
Handle with didChangeAppLifecycleState.
didChangeAppLifecycleState.Adds the method dispose in QRCodeDartScanController
dispose in QRCodeDartScanController- Fix issue #11 - Fix AspectRatio - Update dependencies.
- Fix issue #9
Fix issue #7. Thanks so much philseeley!
return resolutionPreset default to QRCodeDartScanResolutionPreset.medium
resolutionPreset default to QRCodeDartScanResolutionPreset.medium- Update dependencies.
Improvements in QRCodeDartScanController
QRCodeDartScanController- fix problem camera dispose.
- update camera. - update zxing_lib. - update image.
camera.zxing_lib.image.Adds param resolutionPreset and child in QRCodeDartScanView.
cameraresolutionPreset and child in QRCodeDartScanView.update camera, zxing_lib and image
camera, zxing_lib and image- update camera to 0.9.4+5
camera to 0.9.4+5downgrade camera. Awaiting fix issue #90070.
camera. Awaiting fix issue #90070.- update camera - update image.
cameraimage.rename scanQRCodeInverted to scanInvertedQRCode
scanQRCodeInverted to scanInvertedQRCodeadd setScanEnabled in controller.
setScanEnabled in controller.QR_CODE,AZTEC,DATA_MATRIX,PDF_417,CODE_39,CODE_93,CODE_128,EAN_8,EAN_13.* Improvements performance
* Update README
* First version
Your coding agent can read these notes before it upgrades. Set up the MCP server →