### Version 7.1.1 (18 Sep 2025):
- 🚀 **Improvements**:
  * **Barcode Scanner**:
    - **Android**: Improved handling of back action with multiple dialogs and bottom sheets.
  * **General**:
    - **Android**: Changed permission on mock camera to `android.permission.READ_EXTERNAL_STORAGE`.
- 🐞 **Bug fixes**:
  * **Barcode Scanner**:
    - **Android**: Fixed an issue where the e`xtractedDocument` was not being generated for GS1 Handling `DecodeStructure` and `DecodeFull`.
    - **Android**: Fixed an issue where the back button navigation did not work in Barcode Scanner RTU UI v2.
  * **General**:
    - **Android**: Fixed an issue with the black preview in ScanbotCameraXView when the camera selected a square resolution on some Samsung and Xiaomi devices.
    - **Android**: Prevent throwing exception when /sys/devices/system/cpu/cpufreq doesn't exist.
- 🚙 **Under the hood**:
  * Upgraded the native Scanbot Android SDK to v7.1.1.
  * Upgraded the native Scanbot iOS SDK to v7.1.2.
  
### Version 7.1.0 (20 August 2025):
- 🎉 **New**:
  * **Barcode Scanner**:
    - `BarcodeItem` has new properties:
      * [extendedQuad](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BarcodeItem/extendedQuad.html) and [extendedQuadNormalized](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BarcodeItem/extendedQuadNormalized.html) to represent extended quads for 1D barcodes.
      * [rawBytesEncodings](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BarcodeItem/rawBytesEncodings.html) that contains the precise character encoding information of `rawBytes`.
      * [structuredAppendInfo](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BarcodeItem/structuredAppendInfo.html) for messages split across multiple barcodes.
      * [globalIndex](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BarcodeItem/globalIndex.html) to identify a barcode across multiple frames. Can be used for live scanning.
    - `BarcodeScannerUiResult` has a new property [selectedZoomFactor](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.rtu.barcode/BarcodeScannerUiResult/selectedZoomFactor.html) to retrieve the zoom factor used for the barcode scanning.
    - `BarcodeClassicScannerConfiguration` has a new property [accumulationConfig](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.classic_components/BarcodeClassicScannerConfiguration/accumulationConfig.html) which allows the accumulation of barcodes over multiple frames in live mode.
    - All Barcode AR overlays are now based on `extendedQuads`.
    - `CameraConfiguration` has new properties:
      * [fpsLimit](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.rtu.common/CameraConfiguration/fpsLimit.html) to limit the rate of detections per second in normal performance mode.
      * **iOS**: [hardwareButtonsEnabled](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.classic_components/BarcodeCameraConfiguration/hardwareButtonsEnabled.html) to enable zooming using camera control button (iPhone 16 series).
    - Added new API [mockCamera](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot_barcode_sdk/ScanbotBarcodeSdk/mockCamera.html) that allows injecting an image to simulate a video stream to the scanner camera session for UI testing. Check the implementation [here](https://github.com/doo/scanbot-barcode-scanner-sdk-example-react-native/blob/v7.1.0/src/codeSnippets/mockCamera.ts).
  * **General SDK**:
    - **Android**: `ScanbotSdkConfig` has a new property [performanceHintApi](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot_barcode_sdk/ScanbotSdkConfig/performanceHintApi.html) which significantly improves multithreading performance on devices that support the Hint Session (e.g. Pixel 9 Pro and Samsung S24 Ultra).
- 🚀 **Improvements**:
  * **Barcode Scanner**:
    - Boarding pass document parser now supports up to version 8 of the IATA-BCBP standard.
    - Improved vCard document parser.
    - **BarcodeScannerCamera**: Added support for individual barcode overlay customization via [barcodeItemOverlayViewBinder](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.classic_components/SelectionOverlayScannerConfiguration/barcodeItemOverlayViewBinder.html) callback.
    - **BarcodeScannerCamera**: Enhanced [onBarcodeTap](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.classic_components/SelectionOverlayScannerConfiguration/onBarcodeTap.html) callback to include a `highlighted` parameter.
    - **BarcodeScannerCamera**: [loadingText](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.classic_components/SelectionOverlayScannerConfiguration/loadingText.html) can now be customized when `barcodeItemOverlayViewBinder` is not null. This parameter is part of the `SelectionOverlayScannerConfiguration`.
  * **General**:
    - **Android**: Improved the algorithm of high performance cores computation as the old one didn't work correctly on some devices (e.g. Pixel 9 Pro).
    - **Android**: Integrated Android Performance Hint Session for faster multithreading on supported devices (e.g. Pixel 9 Pro, Samsung S24 Ultra).
- 🐞 **Bug Fixes**:
  * **Barcode Scanner**:
    - The carrier identifier for MaxiCode mode 3 might be encoded by using different codewords. Now, all possible codewords are checked.
    - vCard document parser now correctly processes the `FN` key as `FormattedName`.
    - **Android**: Fixed handling of the back actions for modal dialogs in the RTU-UI screens.
  * **PDF Image Extractor**:
    - **iOS**: Fixes wrong orientation of extracted images when the PDF page has a transform applied.
  * **Storage Crypting**:
    - **iOS**: Fixed data corruption issues in AES encryption/decryption that could result in corrupted or partially corrupted files.
- ⚠️ **Breaking Changes**:
  * **Barcode Scanner**:
    - Modified several properties in the [BoardingPass](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/BoardingPass-class.html) and [VCard](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.core/VCard-class.html) models.
    - Default value for [barcodeItemInfoPosition](https://pub.dev/documentation/barcode_scanner/7.1.0-alpha04/scanbot.rtu.barcode/ArOverlayGeneralConfiguration/barcodeItemInfoPosition.html) in `ArOverlayGeneralConfiguration` is changed to `DISABLED`.
    - **BarcodeScannerCamera**: Removed `automaticSelectionEnabled` property from `SelectionOverlayScannerConfiguration`.
    - **BarcodeScannerCamera**: Renamed `onBarcodeClicked` to `onBarcodeTap`.
  * **General**:
    - **Android**: Removed `useCameraX` property from `ScanbotSdkConfig`.
- 🚙 **Under the Hood**:
  * Upgraded the native Scanbot Android SDK to v7.1.0.
  * Upgraded the native Scanbot iOS SDK to v7.1.0.
  * Added flatbuffers 2.0.6.

## 7.0.0 (2 June 2025)
- 🎉 New:
  * Added support for barcode types Pharma Code, Pharma Code Two Track and PZN (Pharmazentralnummer).
  * Added support for the HIBC barcode document format.
  * Added support for advanced configuration of on-image barcode scanning. See more here [BarcodeScannerConfiguration](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeScannerConfiguration-class.html).
  * Added the ability to configure the Barcode Scanner using the common barcode configuration, see [BarcodeFormatCommonConfiguration](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeFormatCommonConfiguration-class.html).
  * Added an option to ignore barcodes that do not decode to one of the accepted document formats for `BarcodeScannerConfiguration`. See more here: [BarcodeScannerConfiguration.onlyAcceptDocuments](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeScannerConfiguration/onlyAcceptDocuments.html).
  * Added new engine modes `NEXT_GEN_FAR_DISTANCE` and `NEXT_GEN_LOW_POWER_FAR_DISTANCE`.
    * `NEXT_GEN_FAR_DISTANCE` is optimized for scanning from far distances.
    * `NEXT_GEN_LOW_POWER_FAR_DISTANCE` is optimized for scanning from far on low-power devices.
  * Added new predefined subsets of barcode formats (1D, 2D, Postal, Pharma, etc.). See more here: [BarcodeFormats](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeFormats-class.html).
  * Barcode scanning results have been enhanced with more detailed information. See more here: [BarcodeItem](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeItem-class.html).
  * Added the ability to return the barcode image in the result. See more here: [BarcodeScannerConfiguration.returnBarcodeImage](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/BarcodeScannerConfiguration/returnBarcodeImage.html).
  * Images returned in scanner results are now represented as image references. They can be converted to `Uint8List` or saved in a provided path. See more here: [ImageRef](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot.core/ImageRef-class.html).
  * Introduced `strictMode` for certain barcode configurators. If this mode is disabled, it should allow for a higher detection rate in difficult scenarios, but with the possibility that false positive results may occur. Currently, we support `strictMode` for `QR_CODE`, `MICRO_QR_CODE`, `RMQR_CODE`, `PDF_417`, `MICRO_PDF417` and `GS1_COMPOSITE`.
  * Added `extractImagesFromPdf` function to extract images from PDF files. Returns a list of image paths as `List<String>?`.
  * Added `makeImageRefsSnapshot` function to capture a snapshot of all active `ImageRef` instances. Returns `ImageRefPoolSnapshot?` with memory usage details.
  * Added `licenseStatusMessage` property to `SdkLicenseStatus`.
  * Added `PLACE_OF_ISSUE` to `CommonFieldType` for specifying the issuance location of identity cards.
  * Added property `hardwareButtonsEnabled` to `BarcodeCameraConfiguration` in Classic component which toggles the original volume button behavior on **iOS** 17.2 and above.
  * Added `cameraZoomRange` and `minFocusDistanceLock` properties to `BarcodeCameraConfiguration` in Classic component for configuring zoom range and locking minimum focus distance.
  * Added `onlyAcceptDocuments` and `returnBarcodeImage` properties to `BarcodeClassicScannerConfiguration` for improved document filtering and barcode image output.
  * Added new customization properties to `SelectionOverlayScannerConfiguration` in Classic component: `highlightedPolygonColor`, `highlightedStrokeColor`, `highlightedTextColor`, `highlightedTextContainerColor`, and `strokeColor` for improved barcode overlay appearance.
  * **Android**: Added an option to the RTU-UI Barcode Scanner screen for keeping the screen on.
  * **Android**: Proguard rules needed for Scanbot SDK are embedded in the package. There is no need to manually specify them in your project.
- 🚀 Improvements:
  * Improved quiet zone checks for the barcode formats `ITF`, `CODE_11`, `MSI_PLESSEY`, `IATA_2_OF_5`, `INDUSTRIAL_2_OF_5` and `CODE_25`.
  * Improved the false positive rate for ITF barcodes.
  * Improved our Barcode Scanner with a significant speed-up in live mode on very large input resolutions.
  * Improved the recognition of PDF417 barcodes in the Barcode Scanner.
  * Improved the Barcode Scanner to better recognize QR codes if the top left finder pattern is corrupted (up to QR code version size 20).
  * More robust QR code recognition, more tolerance for destroyed or missing timing patterns and alignment patterns and a better performance on artistic QR codes.
  * QR codes with non-square finder patterns and QR codes embedded in adversarial backgrounds (flow codes and more generally) can now be recognized.
  * Improved barcode detection for various barcode types.
  * Improved the performance when scanning four state postal barcodes (i.e. Australia Post, Japanese Post, RM4SCC, Royal TNT Post and USPS Intelligent Mail).
  * Improved memory management, logging, and deallocation safety for classic component, ensuring cleaner lifecycle handling and preventing potential resource leaks.
  * By default, Code 93 now includes check digits in the result. To disable this and restore the previous behavior, set `stripCheckDigits = true`.
- 🐞 Bug fixes:
  * Fixed checksum for `CODE_39` barcode format.
  * Fixed the returned results for all types of `UpcEanExtensionBehavior`.
  * Fixed an issue when scanning Code93 barcodes with `stripCheckDigits = false` (default), and the check digit was an extension character.
  * **iOS**: Fixed processing of still images of an indexed color space model in the Barcode Scanner.
  * **iOS**: Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
  * **iOS**: Fixed a bug in the Barcode Scanner RTU-UI v2 where the flip camera button was not resetting the widest camera available if chosen.
  * **iOS**: Fixed a UI bug in the Barcode Scanner RTU-UI v2 where the sheet button overlapped with the action bar.
  * **iOS**: Fixed an issue in the classic component where quickly stopping and starting the camera session could lead to a crash or unpredictable behavior.
  * **Android**: Fixed an overflow when decoding a `MICRO_QR_CODE` barcode format with wrong bits in numeric mode.
  * **Android**: Fixed `minimumTextLength` for `ITF` barcode format. Before, we used it to check the number of symbols instead of the true text length.
  * **Android**: Fixed sorting of quad points for four-state/postal barcode types.
  * **Android**: Fixed quad when flag `BarcodeFormatConfigurationBase.addAdditionalQuietZone` is enabled.
  * **Android**: In RTU-UI v2, the modal dialog no longer appears below the status bar.
  * **Android**: `FindAndPickScanningMode.sheetContent.barcodeItemImageVisible` in RTU-UI v2 now correctly applies the visibility setting.
  * **Android**: Accessibility content for action buttons in RTU-UI v2 is now properly applied.
- ⚠️ Breaking Changes:
  * Removed RTU-UI v1 `startBarcodeScanner`and `startBatchBarcodeScanner` deprecated APIs along with all related types.
  * Removed `detectBarcodesOnImages`, merging image-based barcode detection into `detectBarcodesOnImage` for a unified API.
  * Removed `additionalParameters` from `BarcodeClassicScannerConfiguration`.
  * Removed `NONE` from `CommonFieldType`, as a default value is no longer required.
  * Changed `barcodeFormats` to `barcodeFormatConfigurations` in `BarcodeClassicScannerConfiguration`, requiring a new structure for specifying barcode types.
  * Changed `startBarcodeScanner` method's return type from `ResultWrapper<BarcodeScannerResult>` to `ResultWrapper<BarcodeScannerUiResult>`.
  * `initScanbotSdk` API now returns a result of type `SdkLicenseStatus` instead of a status.
  * The input parameters and result objects for `detectBarcodesOnImage` API were changed. See more here: [ScanbotBarcodeSdk.detectBarcodesOnImage](https://pub.dev/documentation/barcode_scanner/7.0.0/scanbot_barcode_sdk/ScanbotBarcodeSdk/detectBarcodesOnImage.html).
  * Type literals for `BarcodesExtensionFilter`, `BarcodeScannerEngineMode` and `FieldValidationStatus` have been modified.
  * Renamed types `MSIPlesseyChecksumAlgorithm` to `MsiPlesseyChecksumAlgorithm`, `EngineMode` to `BarcodeScannerEngineMode`, `Gs1HandlingMode` to `Gs1Handling`, `ValidationStatus` to `FieldValidationStatus` and `BarcodeScannerConfiguration` to `BarcodeScannerScreenConfiguration`.
  * Renamed all `CommonFieldType` values to follow uppercase and underscore-separated naming for consistency.
  * Renamed `ValidationStatus` to `FieldValidationStatus` and introduced new validation states (`INFERRED`, `IGNORED`).
  * Changed `Field.validationStatus` default value from `null` to `FieldValidationStatus.NONE`.
  * Renamed `expirationDate` to `licenseExpirationDate` and `status` to `licenseStatus` in `SdkLicenseStatus`.
  * Renamed enum `Status` to `LicenseStatus` with updated PascalCase values (e.g., `StatusOkay` → `Okay`).
  * Replaced `shouldReturnCroppedImage` with `returnBarcodeImage` in `BarcodeClassicScannerConfiguration` for clarity and consistency.
  * Replaced type `BarcodeType` with `BarcodeFormat`.
  * Replaced property `recognizerConfiguration` of type `BarcodeRecognizerConfiguration` with `scannerConfiguration` of type `CommonBarcodeScannerConfiguration`.
  * Changed `barcodeListener` callback in `BarcodeScannerCamera` to use `List<BarcodeItem>` instead of `BarcodeScanningResult`.
  * Changed `errorListener` callback in `BarcodeScannerCamera` to use `SdkLicenseStatus` instead of `SdkLicenseException`.
- 🚙 Under the hood:
  * The regex filters are applied for substrings instead of the entire output string.
  * Upgraded the native Scanbot iOS SDK to v7.0.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/)).
  * Upgraded the native Scanbot Android SDK to v7.0.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/)).  
  * Updated some third party libraries. [see Third-party Libraries](https://docs.scanbot.io/barcode-scanner-sdk/flutter/third-party-libraries/).
  * Added `ffi` package for interoperability with native code.
  * **Android**: Updated Compile Sdk to 35.
  * **Android**: Android Jetpack Compose updated to 1.7.8.
## 6.1.1 (February 2025)
- 🎉 New:
  * Added a new optional property `cameraModule` in `BarcodeCameraConfiguration` for the Classic Component Barcode Scanner.
- 🚙 Under the hood:
  * Changed `json_annotation` package restriction from 4.8.1 to ^4.8.1.
## 6.1.0 (January 2025)
- 🎉 New:
  * Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32. Added literals that represent the new barcode types in `BarcodeFormat`.
  * Added a new optional property `addAdditionalQuietZone` in `BarcodeAdditionalParameters`. The default value is false.
  * Added a new property `accessibilityDescription` in `RoundButton` and `ButtonConfiguration`.
  * Added a new property `allowEmptySubmission` in `MultipleScanningMode` to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2.
  * Added new optional properties `useIATA2OF5Checksum`, `useCode11Checksum` and `australiaPostCustomerFormat` in `BarcodeScannerConfiguration`, `BatchBarcodeScannerConfiguration`, `BarcodeRecognizerConfiguration` and `BarcodeAdditionalParameters`. 
  * Added a new type literal `CONFIRMED` in `ValidationStatus` type in `GenericDocument`.
  * Added a new type literal `NONE` in `CommonFieldType` type used in `GenericDocument`.
  * **iOS**: Added new zoom control slider controlled by the new camera control button on all view controllers. Available on all the new iPhone 16 models.
  * **Android**: Added support for 16KB page size (Android 15).  
- 🚀 Improvements:
  * Improved detection of `UPC` and `EAN` extensions.
  * Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
  * For `CODE_128` and `ITF`, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- 🐞 Bug fixes:
  * Fixed KANJI mode for QR codes.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner `FindAndPickScanningMode` that never showed the expected barcodes title, but always the barcode value.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner `FindAndPickScanningMode` in button sheet mode where the counter badge was not visible.
  * **iOS**: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's sheet screen where the subtitle label was being vertically cut off.
  * **iOS**: Fixed a UI issue on the RTU-UI v2 Barcode Scanner's confirmation sheet in the `SingleScanningMode` where the loading indicator was not centered when the loading message was hidden.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
  * **iOS**: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
  * **iOS**: Fixed a bug that did not mirror the front camera as expected.
  * **iOS**: Fixed a crash in scanners when setting the same `minZoom` and `maxZoom` in `ZoomRange`.
  * **Android**: Fixed R8 obfuscation config for SDK logging classes.
  * **Android**: Minor fixes for appearance in RTU-UI v2 Barcode Scanner to make it consistent with its iOS counterpart.
  * **Android**: Fixed an issue with AR Overlay and barcode mapping in RTU-UI v2 Barcode Scanner, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below.
- ⚠️ Breaking Changes:
  * Removed duplicate methods `initScanbotSdk` and `getLicenseStatus` from `scanbot_barcode_sdk_v2.dart`.
  * Renamed the `scanbot_barcode_sdk_v2.dart` file to `scanbot_barcode_sdk_ui_v2.dart`.
  * Removed property `codeDensity` from `BarcodeScannerConfiguration`, `BatchBarcodeScannerConfiguration` and `BarcodeAdditionalParameters`.
  * Removed type literals `VALIDATE` and `DECODE` and replaced them with `VALIDATE_STRUCTURE`, `DECODE_STRUCTURE`, `VALIDATE_FULL` and `DECODE_FULL` in `Gs1HandlingMode`.
  * Changed the default values for properties `okButton`, `cancelButton` and `actionButton` in `ScanbotAlertDialog`.
  * Changed the default values for properties `enableCameraButton` and `closeButton` in `CameraPermissionScreen`.
  * Changed the default value for property `visible` in `ArOverlayFindAndPickConfiguration` to true for `FindAndPickScanningMode`.
  * Replaced `standard` and `validationStatus` fields with `validationErrors` in the `GS1Element` class.
  * **Android**: Changed `barcodesRegexFilter` behavior in `BarcodeRecognizerConfiguration` for `BarcodeScannerConfiguration` config for RTU-UI v2 Barcode Scanner. Barcodes are accepted if the barcode data contains the part that matches the regex.
- 🚙 Under the hood:
  * Upgraded the native Scanbot Android SDK to v6.1.1.
  * Upgraded the native Scanbot iOS SDK to v6.1.1.
  * Added gs1-syntax-dictionary lib.
  
## 5.1.0 (June 2024)
- 🎉 New:
  * Introduced the redesigned RTU-UI version 2 for enhanced Barcode scanning, featuring advanced agile configuration options. See [Ready-to-Use UI](/barcode-scanner-sdk/flutter/barcode-scanner/ready-to-use-ui/) for documentation and various use cases.
  * Added support for the Micro PDF 417 barcode format.
  * Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
  * Added a new field `shouldReturnCroppedImage` in `BarcodeClassicScannerConfiguration` for the `BarcodeScannerCamera` Classic UI. If set to `true`, the result will be returned in the `barcodeImageBase64` field of the `BarcodeItem` model.
  * Launched the new `FindAndPickScanningMode`
- 🚀 Improvements:
  * Optimized camera preview quality and processing speed for all scanners.
  * iOS:
    * IMPORTANT: Changed the default rear cameras on all scanners to the triple or dual camera. On some devices with triple camera this results in a different view port (more zoomed in). Please make sure to adapt your zoom ranges and factors.
    * Added support of haptic feedback on capable devices.
  * Android:
    * Changed the touch to focus square in the native camera view to a circle.
- 🐞 Bug fixes:
  * Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
  * For BarcodeFormat.PDF_417, a single case to generate clusters was not covered, which led to a crash.
  * iOS: 
    * Fixes a crash with all Classic UI components when energy saving is disabled.
- ⚠️ Breaking Changes:
  * Deprecated the Ready to Use UI v1 barcode scanners. Adoption of the RTU UI v2 barcode scanner API is strongly recommended.
  * Transitioned the format of barcode result structures from record classes to GenericDocument. This adjustment impacts RTU UI v1 but is standardized across both RTU UI v1 and RTU UI v2.
  * Renamed `BarcodeFormat.RSS_14`  to `BarcodeFormat.DATABAR` and `BarcodeFormat.RSS_EXPANDED` to `BarcodeFormat.DATABAR_EXPANDED`. 
  * Eliminated the LiveDetector and CameraController classes. All corresponding functionalities are now integrated within the widgets themselves.
  * Updated widgets to automatically adjust to configuration changes received by the camera widget constructors.
- 🚙 Under the hood:
  * Upgraded the native Scanbot iOS SDK to v5.1.3 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/)).
  * Upgraded the native Scanbot Android SDK to v5.1.0 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/)).  
  * Android:
    * Updated Kotlin to version 1.9.0.
    * jvmTarget = "17".
    * Updated 3rd-party libraries:
      * libjpeg-turbo to 2.1.5.1
      * libpng to 1.6.40
      * libtiff to 4.6.0
      * added zlib library
  * iOS:
    * Updated 3rd-party libraries:
      * zlib to version 1.3.1
      * libtiff to 4.6.0
      * libjpeg-turbo to 2.1.5.1
      * libpng to 1.6.40.


## 4.2.1 (May 2024)
- 🚙 Under the hood:
    * iOS:
      * Ensured the SDK to use swift 5.0.

## 4.2.0 (24 April 2024)
- 🎉 New:
  * Added AR Overlay functionality for the Classic Component Barcode Scanner. Please check `BarcodeCameraConfiguration.overlayConfiguration` for more details.
  * Added new properties to RTU-UI configurations. Please check `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration` for more details.
  * Added `GS1_COMPOSITE`, `MICRO_QR_CODE`, `USPS_INTELLIGENT_MAIL`, `ROYAL_MAIL`, `JAPAN_POST`, `ROYAL_TNT_POST`, `AUSTRALIA_POST` and `DATABAR_LIMITED` barcode formats support to `BarcodeFormat`.
  * Added `textWithExtension` property result in `BarcodeItem`.
- ⚠️ Breaking Changes:
  * Changed Android SDK package name. Please change `io.scanbot.barcode.sdk.flutter` to  `io.scanbot.sdk.flutter` in `proguard-rules.pro` rules.
  * Method `detectOnImageFile` was renamed to `detectBarcodesOnImage`.
  * Changed API for detecting barcodes on images. Please check the documentation or example app for more details.
  * Removed `BarcodeScannerConfiguration.barcodeImageGenerationType` for the Classic Component Barcode Scanner.
- 🚙 Under the hood:
  * Added new privacy policy support for publishing iOS apps.
  * Upgraded the native Scanbot iOS SDK to v4.2.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog)).
  * Upgraded the native Scanbot Android SDK to v4.2.0 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/)).

## 3.6.0 (06 June 2023)
- 🎉 New:
  * Added `BatchBarcodeScannerConfiguration.overlayConfiguration` and `BarcodeScannerConfiguration.overlayConfiguration` to configure the selection overlay UI.
  * Added `IATA_2_OF_5`, `INDUSTRIAL_2_OF_5`, and `CODE_25` barcode formats to `BarcodeFormat`.
  * Added a mechanism to properly handle the Classic UI lifecycle when closing the app to the background and reopening it with the scanner open.
  * Added a mechanism to properly handle the Classic Barcode Scanner UI lifecycle during navigation of the camera in the stack. Please register `MaterialApp(navigatorObservers: [ScanbotCamera.scanbotSdkRouteObserver])` in the app root screen.
  * Added `stopPreview()` and `resumePreview()` methods inside `ScanbotCameraController`.
- 🚀 Improvements:
  * Improved the behavior of Classic UI components for asynchronous communication with the native SDK.
- ⚠️ Breaking Changes:
  * Updated the Flutter environment property to `environment: sdk: '>=2.15.0 <3.0.0'`.
  * Removed the `decodeStacks1D` parameter. The decoding of stacked barcodes is now handled automatically.
  * Renamed `AcceptedDocumentFormats` to `BarcodeDocumentFormat`.
  * Removed `finderMinimumPadding` from `FinderConfiguration`.
  * Renamed the `CameraOrientationMode` class to `OrientationLockMode`.
  * Renamed the `FinderInsets` class to `Insets`.
  * Changed the type of the `FinderAspectRatio` fields: `height` and `width` were changed from `int` to `double`.
  * Changed `NextGen` and `Legacy` engine modes to `NEXT_GEN` and `LEGACY` in `EngineMode`.
  * Moved some code for internal reasons - users might need to update their imports:
    - `package:barcode_scanner/common_data.dart` was moved to `package:barcode_scanner/json/common_data.dart`.
    - `EngineMode`, `BarcodeImageGenerationType`, and `FinderAspectRatio` were moved from `package:barcode_scanner/barcode_scanning_data.dart` to `package:barcode_scanner/json/common_data.dart`.
- 🚙 Under the hood:
  * Upgraded the native Scanbot iOS SDK to v3.6.0 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/#version-360-25-april-2023)).
  * Upgraded the native Scanbot Android SDK to v3.6.0 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-360-03-may-2023)).

## 3.2.4 (4 Apr 2023)
- 🚙 Under the hood
  * Updated some third party libraries. [see Third-party Libraries](100-third-party-libraries.mdx)
  * Updated README

## 3.2.4-beta2 (30 January 2023)
- 🐞 Bug fixes:
  * **iOS**: Fixed `enableCameraButtonTitle` and `enableCameraExplanationText` for Barcode scanner configuration.
  
## 3.2.3 (11 November 2022)
- 🎉 New:
  * Added `FinderInsets` class for setting the barcode view insets from all four sides (left, top, right and bottom).
  * Added `finderInsets` property of type `FinderInsets` in `FinderConfiguration` class.
  * Added `BarcodeDensity` enum for expected density of QR codes. A higher density finds more QR codes in an image but the performance is slightly reduced.
  * Added `codeDensity` property of type `BarcodeDensity` enum in `BarcodeAdditionalParameters`.
  * **Android**: Added `useButtonsAllCaps` bool property in `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration` for
    buttons to be in ALL CAPS.
  * **Android**: `useCameraX` defaults to `true` while initialising the Scanbot SDK.
- ⚠️ Breaking Changes:
  * Removed `PORTRAIT_UPSIDE_DOWN`, `LANDSCAPE_LEFT` and `LANDSCAPE_RIGHT` from `CamereOrientationMode` enum.
- 🚙 Under the hood
  * Upgraded the native Scanbot Android Barcode SDK to v3.2.3 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-323-16-aug-2022))
  * Upgraded the native Scanbot iOS SDK to v3.2.3 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/#version-323-18-august-2022))

## 3.2.2 (23 September 2022)
- 🐞 Bug fixes:
  * Fixed compatibility issue with Kotlin 1.7.10 (build error)

## 3.2.1 (24 August 2022)
- 🎉 New:
  * Added the ability to replace the cancel button in the top bar with a back arrow icon in `BarcodeScanner` and `BatchBarcodeScanner` RTU-UI (Android only). See `replaceCancelButtonWithIcon` in `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`

## 3.2.0 (22 July 2022)
- 🎉 New:
  * Introduced Classical Components for Barcode Scanning that allow you to build your own flexible and fully customizable UI for the barcode scanner. Use the classes `BarcodeScannerCamera`, `BarcodeCameraLiveDetector` and `ScanbotCameraController` to build a custom scanner UI.
- ⚠️ Breaking Changes:
  * Renamed parameter `gs1DecodingEnabled` to `enableGS1Decoding` in `BarcodeAdditionalParameters`
  * Renamed Disability Certificate to Medical Certificate:
    - `DisabilityCertificateDocument` has been renamed to `MedicalCertificateDocument`
    - `DisabilityCertificateDocumentField` has been renamed to `MedicalCertificateDocumentField`
    - `DisabilityCertificateDocumentFieldType` has been renamed to `MedicalCertificateDocumentFieldType`
  * Renamed `AAMVAVersionNumber` to `aamvaVersionNumber` in `AAMVADocument`
  * Renamed `GUID` to `guid` in `DEMedicalPlanDocument`
- 🚀 Improvements:
  * Improved 1D barcode recognition
- 🚙 Under the hood
  * Upgraded the native Scanbot Android SDK to v3.2.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-322-13-jun-2022))
  * Upgraded the native Scanbot iOS SDK to v3.2.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/#version-322-13-june-2022))
  * Updated some third party libraries. [see Third-party Libraries](100-third-party-libraries.mdx)

## 3.1.2 (31 May 2022)
- 🐞 Bug fixes:
  * Fixed compatibility issues with Flutter v3.0.1+

## 3.1.1 (22 March 2022)
- 🐞 Bug fixes:
  * Fixed `LicenseExpirationDate`: Invalid date format.
  * By default, GPU acceleration has been disabled (due to issues on the Samsung S22 series devices). To enable it, use `allowGpuAcceleration: true` in `ScanbotSdkConfig()`.
- 🚙 Under the hood
  * Upgraded the native Scanbot Android SDK to v3.1.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-312-11-mar-2022))
  * Updated some third party libraries. [see Third-party Libraries](100-third-party-libraries.mdx)

## 3.1.0 (4 Feb 2022)
- 🎉 New:
  * Added the ability to disable auto-focus by locking the lens at the specified lens position. See `minFocusDistance` in `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`
  * Android: Added `lowPowerMode` in `BarcodeScannerAdditionalConfiguration` for `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`
  * Android: Added the ability for Scanbot SDK Core native logging! See `enableNativeLogging ` in `ScanbotSDKInitializer`
- 🚀 Improvements:
  * Improved Aztec barcode recognition.
  * Improved PDF417 recognition performance on single photos.
  * Improved barcode detection on large documents.
  * Improved GS-1 databar recognition in the next-gen barcode scanner.
- 🚙 Under the hood
  * Upgraded the native Scanbot Android SDK to v3.1.0 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-310-14-jan-2022))
  * Upgraded the native Scanbot iOS SDK to v3.1.1 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/#version-311-26-january-2021))
  * Updated some third party libraries. [see Third-party Libraries](100-third-party-libraries.mdx)

## 3.0.2 (23 Dec 2021)
- 🎉 New:
  * Added Document Format filters for Barcode Detection. See `acceptedDocumentFormats` in `BarcodeScannerConfiguration`, `BatchBarcodeScannerConfiguration` and `detectFromImageFile`
  * Android: Added support for GPU and Xnnpack acceleration, and the possibility to use the Camera X module! See `allowGpuAcceleration`, `allowXnnpackAcceleration` and `useCameraXRtuUi` in `ScanbotSDKInitializer`
  * Added support for `stripCheckDigits` and `msiPlesseyChecksumAlgorithms` in `BarcodeAdditionalParameters`
- ⚠️ Breaking Changes:
  * Renamed parameter `enableGS1Decoding` to `gs1DecodingEnabled` in `BarcodeAdditionalParameters`
  * In function `detectFromImageFile`, `barcodeFormats` parameter is changed from a positional parameter to an optional named parameter
- 🚀 Improvements:
  * Significant performance improvements for all scanners
- 🐞 Bug fixes:
  * Barcode Scanner RTU-UI now returns `BarcodeScanningResult.canceled()` instead of an error, when the user cancels the RTU-UI
- 🚙 Under the hood
  * Upgraded the native Scanbot Android SDK to v3.0.6 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/#version-306-5-nov-2021))
  * Upgraded the native Scanbot iOS SDK to v3.0.3 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/#version-303-3-november-2021))
  * Updated some third party libraries. [see Third-party Libraries](100-third-party-libraries.mdx)

## 3.0.1
- 🎉 New:
  * iOS: Added support for Apple Silicon M1 simulators. Your app now will run natively on M1 Mac simulators without having to start Xcode in Rosetta 2 mode
- ⚠️ Breaking Changes:
  * iOS: The `ScanbotBarcodeScannerSDK` CocoaPod now contains an XCFramework instead of a standard framework, you may need to update CocoaPods and/or Xcode
- 🚙 Under the hood
  * Updated the native iOS Barcode Scanbot SDK to 3.0.1

## 3.0.0
- 🎉 New:
  * Brand new "Next Generation" machine-learning-based barcode scanning engine with improved reliability and much faster performance
  * API changes for the new barcode engine: added `engineMode` property of type `EngineMode` on barcode scanning APIs - `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration` to switch between the legacy barcode engine and the new Next Generation barcode engine. By default, the new engine is used.
  * Added the new `cameraZoomFactor` property in `BarcodeScannerConfiguration` for configuring the zoom level of the camera.
  * Encryption for images generated by the SDK. For more details please check out the section "Storage Encryption" of the documentation.
  * Added support for MSI Plessey barcodes.
  * Added `additionalParameters` property to `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`, which lets you setup a minimum and maximum text length as well as a quiet zone. Currently works for ITF barcodes only.   
- 🚙 Under the hood
  * Updated the native iOS Barcode Scanbot SDK to 3.0.0
  * Updated the native Android Barcode Scanbot SDK to 3.0.1
- ⚠️ Breaking Changes:
  * Removed `enableHighSensitivityMode` property from `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`, because it is no longer needed

## 1.2.0
- 🎉 New:
  * Introduced null safety support for the SDK.

- ⚠️ Breaking Changes:
  * Because of the null safety support, please check compilation issues and warnings from `flutter analyze` command
  * Updated minimum Dart SDK to v2.12.0-0 and Flutter to v2.0.1

## 1.1.0
- 🎉 New:
  - Batch Barcode Scanner - a new RTU UI screen component to scan multiple barcodes in a row. See the new API function startBatchBarcodeScanner.
  - Added a new config property autoCancelTimeout for the Barcode Scanner UI. It provides the possibility to set a timeout value in seconds for auto-closing/cancellation of the Barcode Scanner UI.
New result field BarcodeItem.rawBytes that contains the raw bytes from the scanned barcode
- ⚠️ Breaking Changes:
  - Replaced `finderAspectRatio` parameter with `finderWidth` and `finderHeight` in `BarcodeScannerConfiguration`
- 🚙 Under the hood:
  - Updated the native Android Scanbot Barcode Scanner SDK to 1.3.2
  - Updated the native iOS Scanbot Barcode Scanner SDK to 1.8.4


## 1.0.1
- Improved `pubspec.yaml`, adjusted supported platforms.


## 1.0.0
- 🎉 First release


## 0.9.0-rc.4
- RC4


## 0.9.0-rc.3
- RC3


## 0.9.0-rc.2
- RC2


## 0.9.0-rc.1
- RC1
