### Version 6.1.0 (5 December 2024)
- 🎉 New:
  * Implemented new RTU-UI v2 Document Scanner screen with extended scanning and reviewing capabilities. Added `startDocumentScanner` and `startCroppingScreen` APIs that can be imported from `package:scanbot_sdk/scanbot_sdk_ui_v2.dart`. See full documentation [here](../features/document-scanner/ready-to-use-ui/).
  * Implemented new Document API to perform document creation and editing.
  * Moved all RTU-UI v2 scanners into ScanbotSdkUiV2
  * Added support for German health insurance cards (front side) and European health insurance cards to `startGenericDocumentRecognizer` and `recognizeGenericDocumentOnImage`. Added literals `DE_HEALTH_INSURANCE_CARD_FRONT` and `EU_HEALTH_INSURANCE_CARD` to `GenericDocumentType`. Added `EuropeanHealthInsuranceCard` and `DeHealthInsuranceCardFront`.
  * Added support for new barcode types `MAXI_CODE`, `RMQR_CODE`, `CODE_11` and `CODE_32`. Added literals that represent the new barcode types in `BarcodeFormat`.
  * Added a new optional property `recognizerParameters` of type `HealthInsuranceCardRecognizerParameters` in `HealthInsuranceCardScannerConfiguration` to configure live detection parameters.
  * 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` and `BarcodeRecognizerConfiguration`.
  * Added new optional property `enableNativeLogging` in `ScanbotSdkConfig`.
  * **iOS**: Added new zoom control slider (controlled by the new camera control button) to all view controllers. Available on all the new iPhone 16 models.
  * **Android**: Added support for 16KB page size (Android 15).
- 🚀 Improvements:
  * Document detector:
    * Improved detection speed and robustness against orientation changes.
    * Improved robustness against picking up random contours.
    * Improved robustness against documents with colored corners, booklets, handheld documents, and cards, documents near edges of tables, and overlapping documents.
  * Improved detection of `UPC` and `EAN` extensions.
  * Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
  * Improved performance of `documentQualityAnalyzer`.
  * For `CODE_128` and `ITF`, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
  * **iOS**: Improved sharpness of captured images in `documentScanner` by tweaking various timing related default values, such as `autoSnappingDelay`.
  * **Android**: Improved generic document recognition on static images.
- 🐞 Bug fixes:
  * Fixed KANJI mode for QR codes.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner `FindAndPickScanningModeUseCase` that never showed the expected barcodes title, but always the barcode value.
  * **iOS**: Fixed a UI issue in the RTU-UI v2 Barcode Scanner `FindAndPickScanningModeUseCase` 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 `SingleScanningModeUseCase` where the loading indicator was not centered when the loading message was hidden.
  * **iOS**: Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes are displayed along with their non-extended versions.
  * **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 RTU-UI v2 Barcode Scanner's finder where the background color overlapped with the line color.
  * **iOS**: Fixed a crash when zooming with invalid `minZoom` and `maxZoom` values.
  * **iOS**: Fixed a bug that did not mirror the front camera as expected.
  * **Android**: Fixed image preprocessing for `documentQualityAnalyzer`.
  * **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**: Fix point sorting in the contour detector.
  * **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:
  * Introduced new properties, `fileEncryptionPassword` and `fileEncryptionMode`, in `ScanbotSdkConfig` to replace the EncryptionParameters.
  * Deprecated `startDocumentScanner`, `startFinderDocumentScanner`, `startCroppingScreen` and related configurations and result types. See [RTU-UI v2 Document Scanner](../features/document-scanner/ready-to-use-ui/).
  * Removed property `codeDensity` from `BarcodeScannerConfiguration`, `BatchBarcodeScannerConfiguration` and `BarcodeRecognizerConfiguration`.
  * Removed property `sharpnessAcceptanceFactor` from `GenericDocumentRecognizerConfiguration`.
  * Removed type literals `VALIDATE` and `DECODE` and replaced them with `VALIDATE_STRUCTURE`, `DECODE_STRUCTURE`, `VALIDATE_FULL` and `DECODE_FULL` in `Gs1HandlingMode`.
  * Removed type literals `SuccessFound` and `ErrorTooBlurry` and added new `ErrorUnknownDocument`,`ErrorUnacceptableDocument` and `IncompleteValidation` in `GenericDocumentRecognitionStatus`.
  * Removed `scanbot_sdk_v2` and moved initialization of sdk into `scanbot_sdk`.
  * Removed `EncryptionParameters` and `encryptionParameters` property from `ScanbotSdkConfig`
  * Renamed type `DetectionStatus` to `DocumentDetectionStatus` and removed `OK_BARCODE` type literal.
  * Renamed property name `engine` to `engineMode` in `OcrOptions`.
  * Changed property name `imageFormat` to `storageImageFormat` in `ScanbotSdkConfig`.
  * Changed default values for properties `enableCameraButton` and `closeButton` in `CameraPermissionScreen`.
  * Changed default values for properties  `okButton`, `cancelButton` and `actionButton` in `ScanbotAlertDialog`.
  * Changed default value for property `visible` in `ArOverlayFindAndPickConfiguration` to true for `FindAndPickScanningMode`.
  * ResultWrapper model changes:
    * Added a new `OperationStatus` enum and an extension method for parsing strings to `OperationStatus`.
  * Document models changes:
    * Added property `cardAccessNumber` and removed property `pin` in `DeIdCardFront` and `DeResidencePermitFront` models.
    * `pseudonym` property now returns `Field | undefined` in `DeIdCardBack` model.
    * `restrictions` property now returns `Field | undefined` in `DeDriverLicenseBack` model.
    * Replaced `m` property of type `DeDriverLicenseBack.Categories.M` with `am` property of type `DeDriverLicenseBack.Categories.AM`.
    * Replaced `standard` and `validationStatus` fields with `validationErrors` in the `GS1.Element` 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.
  * **Android**: Some newly created files, like PDF, TIFF, or temporary images, will have different paths than previously created files.
- 🚙 Under the hood:
  * Upgraded the native Scanbot Android SDK to v6.1.2.
  * Upgraded the native Scanbot iOS SDK to v6.1.1.
  * Added gs1-syntax-dictionary lib.
    
### Version 5.1.3 (5 November 2024)
- 🚀 Improvements:
  * iOS:
    * Added `widgetFadeAnimationDurationiOS` to `ScanbotCroppingWidget` to customize the animation duration.
- 🐞 Bug Fixes:
  * Android:
    * Fixed an issue where polygon detection didn't work after switching the page inside `ScanbotCroppingWidget`.
  * iOS:
    * Resolved a blink issue that caused brief redraws during page changes inside `ScanbotCroppingWidget`.

### Version 5.1.2 (25 October 2024)
- 🐞 Bug fixes:
  * iOS:
    * Fixed the image processing and editing flow in `ScanbotCroppingWidget`.

### Version 5.1.1 (21 October 2024)
- 🚀 Improvements:
  * Updated visibility of `ScanbotCameraWidgetState` to allow access to `channelName`.
- 🐞 Bug fixes:
  * Android:
    * Fixed transitive resources issue for proper references across modules.

### Version 5.1.0 (20 September 2024)
- 🎉 New:
  * Introduced the redesigned [**RTU-UI version 2.0**](04-features/02-barcode-scanner/00-ready-to-use-ui.mdx) for enhanced Barcode scanning, featuring advanced agile configuration options.
  * Added support for the Micro PDF 417 barcode format.
  * Added support for parsing AAMVA Certificate of Title for motor vehicle barcodes.
  * Added a new field `shouldReturnCroppedImage` in `BarcodeClassicScannerConfiguration` for the `BarcodeScannerCamera` Classic UI. When set to `true`, the result will be returned in the `barcodeImageBase64` field of the `BarcodeItem` model.
  * Added new RTU components:
    - **VIN Scanner**: The `startVinScanner` component is designed to accurately scan and decode Vehicle Identification Numbers (VINs). This scanner is optimized to handle VINs from a variety of sources, including vehicle dashboards and registration documents, providing precise extraction and decoding of this critical vehicle information.
    - **Check Scanner**: With the `startCheckScanner` component, you can scan and recognize various check formats. This scanner processes checks to extract key data fields, enabling streamlined check processing and verification.
    - **Text Data Scanner**: The `startTextDataScanner` component extracts text data from documents using Optical Character Recognition (OCR). It is particularly useful for capturing and digitizing text from forms, invoices, and other text-heavy documents, facilitating efficient data entry and management.
    - **Medical Certificate Scanner**: The `startMedicalCertificateScanner` component is tailored for scanning and recognizing medical certificates. It supports various medical document formats, extracting essential information such as patient details, diagnoses, and treatment data, which is crucial for healthcare documentation and management.
  * Added new `ParametricFilter` APIs:
    - `ScanbotBinarizationFilter`
    - `CustomBinarizationFilter`
    - `ColorDocumentFilter`
    - `BrightnessFilter`
    - `ContrastFilter`
    - `GrayscaleFilter`
    - `WhiteBlackPointFilter`
    - `LegacyFilter`
  * Added support for German residence permits (2011 and 2019 formats) in GenericDocumentRecognizer.
  * `PdfRenderingOptions` now allows setting the `jpegQuality` for image encoding. Additional fields include `pageFitMode`, `dpi`, and `resample`.
  * Introduced a new class `ScanbotSdkRecognizeOperations` with operations:
    - `recognizeMrzOnImage`
    - `recognizeMedicalCertificateOnImage`
    - `recognizeHealthInsuranceCardOnImage`
    - `recognizeGenericDocumentOnImage`
    - `recognizeCheckOnImage`
- 🚀 Improvements:
  * The Health Insurance Card Recognizer now implements the new Scanbot OCR engine. The recognition is faster and more accurate than before.
  * Improved speed and quality of scanning for Generic Document.
  * Improved detection of UPC/EAN barcode extensions in live mode.
  * Improved speed and image quality of still image capturing.
- 🐞 Bug Fixes
  * Fixed issue with misaligned barcode polygons on devices with horizontal orientation.
  * Fixed a crash with BarcodeFormat.PDF_417 due to an uncovered cluster generation case.
  * Fixed error handling in storage cleanup and page loading.
- ⚠️ Breaking Changes:
  * Deprecated the **Ready-to-Use UI v1.0** barcode scanners. Adoption of the RTU UI v2 scanner API is strongly recommended.
  * Transitioned barcode result structures from record classes to `GenericDocument`, affecting RTU UI v1 but standardizing across RTU UI v1 and v2.
  * Renamed `BarcodeFormat.RSS_14` to `BarcodeFormat.DATABAR` and `BarcodeFormat.RSS_EXPANDED` to `BarcodeFormat.DATABAR_EXPANDED`.
  * Eliminated the `LiveDetector` and `CameraController` classes. Their functionalities are now integrated within the widgets.
  * Updated widgets to automatically adjust to configuration changes received by the camera widget constructors.
  * Updated `BarcodeScannerCamera` Classic UI Component:
    - **Previous Structure**:
      - Used `ScanbotCameraController` for camera control and barcode detection, with `cameraDetector` and `onWidgetReady` for initialization.
    - **New Structure**:
      - Simplified to use direct callbacks: `barcodeListener` for handling scanning results, `errorListener` for error handling, and `onCameraPreviewStarted` for setup after the camera preview starts. `ScanbotCameraController` and `cameraDetector` are no longer needed.
  * Updated `DocumentScannerCamera` Classic UI Component:
    - **Previous Structure**:
      - Relied on `DocumentCameraLiveDetector` for document scanning and separate listeners for results, errors, and document contours. Required `ScanbotCameraController` for control and initialization.
    - **New Structure**:
      - Consolidated functionality into the `DocumentScannerCamera` widget. Uses `snapListener` for handling scanned pages, `errorListener` for errors, `documentContourListener` for document contours, and `onCameraPreviewStarted` for setup after the preview starts.
  * Updated `MedicalCertificateScannerCamera` Classic UI Component:
    - **Previous Structure**:
      - Used `MedicalCertificateCameraLiveDetector` and `ScanbotCameraController` for control and initialization. Included `finder` and `onWidgetReady` for UI setup.
    - **New Structure**:
      - Integrated all functionality into the `MedicalCertificateScannerCamera` widget. Now uses `mcListener` for medical certificate results, `errorListener` for error handling, and `onCameraPreviewStarted` for setup. Enhanced `finder` configuration includes new UI options.
  * Removed Legacy Components:
    - Removed `DocumentCameraLiveDetector` and `ScanbotCameraController` in favor of a streamlined approach.
    - Removed `MedicalCertificateCameraLiveDetector`; its functionality is now integrated directly into the `MedicalCertificateScannerCamera` widget.
    - Removed the `LiveDetector` and `CameraController` classes. Their functionality is now integrated directly into the `BarcodeScannerCamera` widget.
- 🚙 Under the Hood:
  * Updated the native Scanbot iOS SDK to v5.1.3 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/ios/changelog/)).
  * Updated the native Scanbot Android SDK to v5.1.2 (cf. [changelog](https://docs.scanbot.io/barcode-scanner-sdk/android/changelog/)).
  * Android:
    * Updated Kotlin to version 1.8.22 and set `jvmTarget` to "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 1.3.1
      - `libtiff` to 4.6.0
      - `libjpeg-turbo` to 2.1.5.1
      - `libpng` to 1.6.40

### Version 4.2.3 (26 August 2024)
- 🐞 Bug fixes:
  * Android:
    * Resolved a build failure in the `CameraDisplayOwner` class that occurred due to incorrect implementation of the `LifecycleOwner` interface.

### Version 4.2.2 (12 April 2024)
- 🐞 Bug fixes:
  * iOS:
    * Changed privacy manifest to comply with the latest Apple specs.
- 🚙 Under the hood:
  * Updated the native iOS Scanbot SDK to 4.2.2
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))

### Version 4.2.1 (5 February 2024)
- 🐞 Bug fixes:
  * Android:
    * Fixed an unhandled exception when closing the Document Scanner classic component.

### Version 4.2.0 (12 January 2024)
- 🎉 New:
  * Added support for new barcode type `BarcodeFormat.GS1_COMPOSITE`.
  * Added analyzer image size limit property for Document Quality Analyzer `analyzeQualityOfDocument(Page page, Size? analyzerImageSizeLimit)`. If `analyzerImageSizeLimit` not set, the image will be downscaled to 2500 px.
  * Added support for Kuwait ID cards in the MRZ scanner.
- 🚀 Improvements:
  * Added more control over how to handle GS1 messages in barcodes. See `BarcodeScannerAdditionalConfig.setGs1HandlingMode`.
- ⚠️ Breaking Changes:
  * Replaced `BarcodeScannerConfiguration.gs1DecodingEnabled` with `BarcodeScannerConfiguration.gs1DecodingMode` in the RTU-UI Barcode Scanner and Batch Barcode Scanner.
- 🐞 Bug fixes:
  * Android:
    * Fixed the Camera Preview blinking after capturing a picture.
- 🚙 Under the hood:
  * Updated the native iOS Scanbot SDK to 4.2.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
  * Updated the native Android Scanbot SDK to 4.2.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 4.1.0 (15 December 2023)
- 🎉 New:
  * Added a new Optical Character Recognition engine based on machine learning algorithms that is usually much faster and less error prone. This new OCR engine currently supports all languages with latin letters, there is no need to specify the languages for it. The legacy engine, based on Tesseract, can still be used for non latin-based languages.
  * New PDF renderer for simple PDFs and "sandwiched" PDFs generation.
    * Added support for custom PDF metadata.
    * Added support for portrait, landscape and auto locks for the page orientation.
    * Extended the list of supported page sizes (A3, A5, B4, B5, etc.)
  * Added new Document Quality Analyzer. Use `ScanbotSdk.analyzeQualityOfDocument`.
  * Added new  barcode types: `AUSTRALIA_POST`, `JAPAN_POST`, `ROYAL_MAIL`, `ROYAL_TNT_POST`, `USPS_INTELLIGENT_MAIL`, `DATABAR_LIMITED`.
  * Added `touchToFocusEnabled` to the RTU-UI scanner configs.
  * Added `CameraModule.BACK_WIDEST` to the `cameraModule` config.
- 🚀 Improvements:
  * Improved the document detector with better performance and less memory consumption.
- 🐞 Bug fixes:
  * Fixed the behavior of the Barcode Scanner when an empty array is set. Now it scans all barcode types for iOS.
- ⚠️ Breaking Changes:
  * `photoQualityPrioritization` parameter spelling was fixed in the Document Scanner.
  * Removed `autoCancelTimeout` parameter from the MRZ Scanner.
  * Removed `ScanbotSdk.estimateBlurOnPage` method. Use the new `ScanbotSdk.analyzeQualityOfDocument` method instead.
  * Removed `PdfRenderSize` enum in favor of `PageSize` class.
  * The default OCR engine has changed from `TESSERACT` to `SCANBOT_OCR`. Please use `TESSERACT` if you need to recognize non-Latin language texts.
- 🚙 Under the hood:
  * Changed the behavior of classic components `cameraZoomFactor` parameter. Now 0..1 maps to the real zoom value in the range 1.0..12.0x on both Android and iOS.
  * Changed the behavior of the barcode data mapper callback.
  * Updated the native iOS Scanbot SDK to 4.1.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
  * Updated the native android Scanbot SDK to 4.1.1
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.13.6 (24 October 2023)
- 🐞 Bug fixes:
    * Fixed a bug where `documentContourListener` was not correctly returning `DetectionStatus.OK` when `ignoreBadAspectRatio: true` was set.

### Version 2.13.5 (16 October 2023)
- 🐞 Bug fixes:
    * Fixed `ScanbotCroppingWidget` not showing the image when `encryptionEnabled` mode is set.

### Version 2.13.4 (13 October 2023)
- 🚀 Improvements:
    * Optimized preview image quality in `ScanbotCroppingWidget` in Android.
    * Optimized behavior of `DocumentScannerCamera`. When scanning with `ignoreBadAspectRatio: true`, the `documentContourListener` won't return `DetectionStatus.OK_BUT_BAD_ASPECT_RATIO`.

### Version 2.13.3 (4 October 2023)
- 🐞 Bug fixes:
    * Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
    * Fixed an issue that prevented the Batch Barcode screen from starting.

### Version 2.13.2 (26 September 2023)
- 🎉 New:
    * Added named parameters `originalImageSizeLimit` and `documentImageSizeLimit` to `ScanbotSdk.createPage`, `ScanbotSdk.createPageFromBytes` and `DocumentClassicScannerConfiguration` that limits page images size to this value. If the image size exceeds the limit, the image will be downscaled to fit the limit. Cropped images will never be bigger than the original images.
    * Added `ContourConfiguration.showPolygonInManualMode` to `DocumentScannerConfiguration` that allows to show/hide polygon contour when auto-snapping is disabled.
- 🚀 Improvements:
    * Improved behavior of `DocumentScannerCamera`. Now it automatically reacts to the changes of `DocumentClassicScannerConfiguration.autoSnapEnabled` parameter. Hence, you can change this parameter and don't need to call `liveDetector.setAutoSnappingEnabled` when changing this state by pressing a button.
    * Improved behavior of `CroppingController.rotateCw()` and `CroppingController.rotateCCW()`. Now the call can be awaited so you can block UI elements during the rotation animation.
- 🐞 Bug fixes:
    * Fixed a bug with encryption where `EncryptionParameters.password` had a default empty value which is not correct. Now `password` is a required parameter to encrypt the data.
    * Fixed documentation for `acceptedAngleScore` and `acceptedSizeScore` in `DocumentClassicScannerConfiguration`. The range changed to 0-100 in percentage values.
    * Fixed behavior of document contour in `DocumentScannerCamera`. Now it's the same for both platforms.
    * Fixed `DocumentCameraLiveDetector.documentContourListener` callback. Now it always returns the detection status on iOS.
    * Fixed crash in iOS when partially filled sub-objects of RTU-UI configurations were set.

### Version 2.13.1 (20 September 2023)
- 🐞 Bug fixes:
  * Fixed a bug in the RTU-UI Document Scanner due to an issue with config parsing.
  
### Version 2.13.0 (15 August 2023)
- 🎉 New:
    * Added `MICRO_QR_CODE` barcode format to `BarcodeFormat`.
    * Added `onCameraPreviewStarted` callback to custom components to get notified when the camera preview is started. It also runs each time the preview restarts after the picture is taken (Android).
    * Changed behavior of `onWidgetReady` callback in custom camera components. It is now called when the camera widget is initialized and ready to use. This happens not only once when the widget is created but also when the app returns to the foreground and the user pops to the camera page from another page, if `ScanbotCamera.scanbotSdkRouteObserver` is registered.
    * Added barcode scanning classic component AR overlay feature.
    * Added `BarcodeCameraConfiguration.overlayConfiguration` to configure the barcode scanning classic component AR overlay.
- 🚀 Improvements:
    * Refactored behavior colors. The colors in RTU-UI screens that should be displayed as semi-transparent should be used with alpha as follows: `fillColor: Colors.red.withAlpha(150)`.
- 🐞 Bug fixes:
    * Fixed bug with  `ScanbotSdk.refreshImageUris` method on Android. Now it renews uris properly.
    * `ScanbotCroppingWidget` now properly reacts to the `Page` object changes. If you reassign a new page to the page property (with a new id), it will reset its content and cropping state to the new state.
    * Fixed a bug when the camera is disabled, the document scanner screen could crash on iOS.
- ⚠️ Breaking Changes:
    * Refactored the structure of ALL RTU-UI scanners configuration classes. Please check example app and documentation for more details.
    * Refactored the way we process and return the data for the Generic Document Scanner and MRZ Scanner. The structure of the result classes for the both scanners are changed to support the `GenericDocument` structure. Same as the native SDKs. Please check example app and documentation for more details.
    * Refactored imports structure inside scanbot_sdk. Please replace all scanbot_sdk related imports to `import 'package:scanbot_sdk/scanbot_sdk.dart';` in your code. For imports with the prefixes please use `import 'package:scanbot_sdk/scanbot_sdk.dart' as ScanbotSdk;`. Please check example app and documentation for more details.
- 🚙 Under the hood:
    * Default set of params applied for all RTU-UI scanner configs if not specified explicitly.
    * Added dart library `dart:collections` v.1.17.1 to the internal usage of scanbot_sdk, `json_annotation` dependency updated to 4.8.1, `environment:sdk` tool to `>=2.17.0 <4.0.0`.
    * Updated the native iOS Scanbot SDK to 2.3.1-Beta4
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native android Scanbot SDK to 2.3.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.12.1 (9 June 2023)
- 🐞 Bug fixes:
    * Fixed a crash in the iOS Classic components for when the scanners were closed multiple times.

### Version 2.12.0 (8 May 2023)
- 🎉 New:
    * Added `IATA_2_OF_5`, `INDUSTRIAL_2_OF_5` and `CODE_25` barcode formats to `BarcodeFormat`.
    * Added property `recognitionConfidenceValue` to `McPatientInfoField`.
- 🚀 Improvements:
    * Improved behavior of Classic UI components for asynchronous communication with the native SDK.
- ⚠️ Breaking Changes:
    * Changed structure of `MedicalCertificateRecognizerResult`:
        + `McInfoBoxSubType` renamed to `MedicalCertificateCheckBoxType`.
        + `McPatientInfoFieldType` renamed to `MedicalCertificatePatientInfoFieldType`.
        + `MedicalCertificateInfoBox` type split into `MedicalCertificatePatientInfoField` and `MedicalCertificateCheckBox`.
        + `MedicalCertificateInfoBox.patientInfoFields` property now available as `MedicalCertificateInfoBox.patientInfoBox.patientInfoFields`.
        + `DateRecord.validationConfidenceValue` removed.
    * Removed parameter `decodeStacks1D`. The decoding of stacked barcodes is now handled automatically.
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 2.2.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native Android Scanbot SDK to 2.2.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.11.0 (27 March 2023)
- 🎉 New:
    * Introduced Classical Components for the Medical Certificate Scanner that allow you to build your own flexible and fully customizable UI for Scanning German Medical Certificates. Use the classes `MedicalCertificateScannerCamera` and `ScanbotCameraController`  to build a custom document scanner UI.
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 2.0.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native Android Scanbot SDK to 2.0.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.10.1 (20 January 2023)
- 🎉 New:
    * Introduced Classical Components for Cropping Page that allow you to build your own flexible and fully customizable UI for cropping Page Objects. Use the classes `ScanbotCroppingWidget` and `CroppingController` to build a custom cropping UI.
- ⚠️ Breaking Changes:
    * Renamed `DetectionResult` to `DetectionStatus`
    * Renamed `FinderInsets` to `Insets`
- 🐞 Bug fixes:
    * Fixed `enableCameraButtonTitle` and `enableCameraExplanationText` in EHIC and MRZ Scanners
    * Fixed image saving for classical document scanner on android

### Version 2.10.0 (17 November 2022)
- 🎉 New:
  * Introduced Classical Components for Document Scanning that allow you to build your own flexible and fully customizable UI for the document scanner. Use the classes `DocumentScannerCamera`, `DocumentCameraLiveDetector`, and `ScanbotCameraController` to build a custom document scanner UI.
  * Added `GS1` barcode document to `BarcodeDocumentFormat`.
- ⚠️ Breaking Changes:
  * Changed file location of Barcode Scanner and Batch Barcode Scanner related classes.
  * Renamed `AcceptedDocumentFormat` to `BarcodeDocumentFormat`
  * Renamed `CameraOrientationMode` to `OrientationLockMode`
- 🚙 Under the hood:
  * Updated the native iOS Scanbot SDK to 1.29.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
  * Updated the native Android Scanbot SDK to 1.96.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.9.1 (28 September 2022)
- 🐞 Bug fixes:
    * Fixed compatibility issues with Xcode 14 (build error)
    * Fixed compatibility issues with Kotlin 1.7.10 (build error)

### Version 2.9.0 (22 June 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.
- 🚀 Improvements:
    * Improved 1D barcode recognition
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 1.27.1
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native Android Scanbot SDK to 1.94.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.8.3 (31 May 2022)
- 🚀 Improvements:
    * Updated README

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

### Versions 2.8.1 (16 March 2022)
- 🐞 Bug fixes:
    * Fixed `LicenseExpirationDate`: Invalid date format.

### Version 2.8.0 (8 March 2022)
- 🎉 New:
    * Introduced the `Generic Document Recognizer`, providing the ability to scan various types of documents, including `German ID cards`, `German passports` and `German driver's licenses`
    * Added `detectBarcodesOnImages` in `ScanbotSdk` for detecting barcodes on multiple still images.
    * Android: Added `useCameraX` in `ScanbotSdkConfig`. You can now enable CameraX under the hood.
    * Android: Added `allowXnnpackAcceleration` in `ScanbotSdkConfig` which allows controlling whether the XNN pack optimizations should be used.
    * Android: Added `allowGpuAcceleration` in `ScanbotSdkConfig` which enables GPU acceleration for TensorFlow ML models.
    * Added the ability to disable auto-focus by locking the lens at the specified lens position. See `minFocusDistance` in `BarcodeScannerConfiguration` and `BatchBarcodeScannerConfiguration`
- 🚀 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.
- 🐞 Bug fixes:
    * Fixed `LicenseExpirationDate` returning the incorrect time.
- ⚠️ Breaking Changes:
    * Renamed `detectBarcodeFromImageFile` parameter to `detectBarcodesOnImage`
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 1.24.1
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native Android Scanbot SDK to 1.91.0
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))

### Version 2.7.0 (3 Dec 2021)
- 🎉  New:
    * Added `createPageFromBytes` function to create a page object without storing a temporary image object outside the SDK
    * Added support for `AcceptedDocumentFormats` in `BarcodeScannerConfiguration`, `BatchBarcodeScannerConfiguration` and `detectBarcodeFromImageFile`
- 🚀  Improvements:
    * Significant performance improvements for all scanners
- 🚙  Under the hood
    * Updated the native iOS Scanbot SDK to 1.21.2
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
    * Updated the native Android Scanbot SDK to 1.89.1
      (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))
- 🐞  Bug fixes:
    * Fixed `CroppingResult.error()` return for `CroppingResult` object in the page cropping component

### Version 2.6.0 (23 Jul 2021)
- 🎉 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.
    * Added support for MSI Plessey barcodes.
- 🚙 Under the hood
    * Updated the native iOS Scanbot SDK to 1.19.3
      (cf. [changelog](/document-scanner-sdk/ios/99-changelog.mdx))
    * Updated the native Android Scanbot SDK to 1.85.1
      (cf. [changelog](/document-scanner-sdk/android/99-changelog.mdx))
- ⚠️ Breaking Changes:
    * Removed `enableHighSensitivityMode` property on `BarcodeScanner`, because it is no longer needed

### Version 2.5.0 (2 Jun 2021)
- 🎉 New:
    * Added [NFC Passport Reader](04-features/01-components.mdx).
    * Add [License Plate scanner](04-features/08-license-plate-scanner.mdx#licenseplatescannerconfiguration) for the EU cars license plates.
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 1.15.1
      (cf. [changelog](/document-scanner-sdk/ios/99-changelog.mdx))
    * Updated the native Android Scanbot SDK to 1.83.0
      (cf. [changelog](/document-scanner-sdk/android/99-changelog.mdx))

### Version 2.4.1 (1 Apr 2021)
- 🐞 Bug fixes:
    * iOS: Fixed a mapping issue of the config parameter `flashButtonHidden` in the Document Scanner.


### Version 2.4.0 (30 Mar 2021)
- 🎉 New:
    * Add null safety support for the SDK.
- ⚠️ Breaking Changes:
    * Due to null safety support update please follow compilation issues and warnings from 'flutter analyze' command
    * Updated minimum dart sdk to `2.12.0-0` and flutter to `2.0.1`


### Version 2.3.0 (11 Mar 2021)
- 🎉 New:
    * Encryption for images, PDF, and TIFF files, generated by the SDK.
      For more details please check out the section [Storage Encryption](04-features/99-storage-encryption.mdx#storage-encryption).
    * Blur estimation feature. See the new API function [estimateBlurOnPage](04-features/03-document-scanner/03-page-operations.mdx#scanbotsdkestimatebluronpagepage-page).
- 🐞 Bug fixes:
    * iOS: Multiple UI fixes for barcode scanners.
- 🚙 Under the hood:
    * Updated the native iOS Scanbot SDK to 1.14.0
      (cf. [changelog](/document-scanner-sdk/android/99-changelog.mdx))
    * Updated the native Android Scanbot SDK to 1.80.0
      (cf. [changelog](/document-scanner-sdk/ios/99-changelog.mdx))


### Version 2.2.2 (16 Feb 2021)
- ⚠️ Breaking Changes:
    * Android compileSdkVersion is set to 30
    * Increase flutter min support version to 1.22.6
- 🐞 Bug fixes:
    * Fix compilation for compileSdkVersion 30 for android


### Version 2.2.1 (12 Feb 2021)
- 🐞 Bug fixes:
    * Added missing permission text properties `enableCameraButtonTitle`
      and `enableCameraExplanationText` to `DocumentScannerConfiguration`


### Version 2.2.0 (12 Feb 2021)
- 🎉 New:
    * Batch Barcode Scanner - a new RTU-UI screen component to scan multiple barcodes in a row.
      See the new API function `startBatchBarcodeScanner`.
    * Added barcode detection from still images, see `detectBarcodeFromImageFile`.
    * 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` and `MrzScannerConfiguration`.
- 🚙 Under the hood:
    * Updated the native Android Scanbot SDK to 1.77.2
      (cf. [changelog](/document-scanner-sdk/android/99-changelog.mdx))
    * Updated the native iOS Scanbot SDK to 1.13.0
      (cf. [changelog](/document-scanner-sdk/ios/99-changelog.mdx))


### Version 2.1.0 (15 Dec 2020)
- 🐞 Bug fixes:
    * iOS: Introduced a new API method `refreshImageUris(pages)` to fix image file paths
      after app updates. For more details please check out the section
      [Persistence of Page Objects](04-features/03-document-scanner/02-page-model.mdx#persistence-of-page-objects).
    * iOS: Fixed de-/serialization of the property `Page.detectionStatus`.


### Version 2.0.1 (28 Nov 2020)
- 🚀 Improvements:
    * iOS: Swift 5 support


### Version 2.0.0 (30 Oct 2020)
- 🎉 New:
    * A new Machine Learning based approach for document detection.
      See the new [SDK initialization](03-sdk-initialization.mdx) parameter `documentDetectorMode`.
    * Barcode Scanner: Added barcode data parsers for several document types. See the new result field `BarcodeItem.formattedResult`
      as well as the corresponding implementations of [`BarcodeFormattedResult`](04-features/02-barcode-scanner/00-ui-components.mdx#barcodeformattedresult---barcode-data-parsers).
- 🚀 Improvements:
    * Android: Some big improvements in the Document Scanner UI that make document scanning perform better and much smoother.
      Decreased start-up time of the camera preview. Faster saving of the snapped pages. Optimized performance of the
      image processing for simple operations (rotate, crop, resize).
    * Barcode Scanner: Multi-barcode scan support!
- ⚠️ Breaking Changes:
    * Android: Migrated to [Android embedding v2](https://github.com/flutter/flutter/wiki/Upgrading-pre-1.12-Android-projects)
    * Android: Raised `minSdkVersion` to `21`
    * iOS: Dropped support for iOS 9 and iOS 10!
- 🚙 Under the hood:
    * Upgraded the native Scanbot Android SDK to v1.74.0
      (cf. [changelog](/document-scanner-sdk/android/99-changelog.mdx))
    * Upgraded the native Scanbot iOS SDK to v1.11.6
      (cf. [changelog](/document-scanner-sdk/ios/99-changelog.mdx))


### Version 1.1.4 (29 Sep 2020)
- 🚀 Improvements:
    * iOS: Changed presenter logic for all Scanbot SDK RTU-UI screens.


### Version 1.1.3 (27 Aug 2020)
- 🐞 Bug fixes:
    * iOS: Fixed a mapping issue of the config parameter `doneButtonTitle` in Cropping UI.


### Version 1.1.2 (28 May 2020):
- 🚀 Improvements:
    * `OperationResult.CANCELED` when the user presses `cancel` in any Scanbot UI screen component


### Version 1.1.1 (13 May 2020):
- 🐞 Bug fixes:
    * Android: Fixed a bug with mappings of OCR language data files
      (`zh-Hans` and `zh-Hant` to `chi_sim.traineddata` and `chi_tra.traineddata`).


### Version 1.1.0 (9 Dec 2019):
- 🎉 New:
    * Added further TIFF options `dpi` and `compression`. See [createTiff(pages, options)](04-features/03-document-scanner/06-tiff-creation.mdx#tiff-creation).
- 🚀 Improvements:
    * Improved OCR API. The OCR results now contain bounding boxes and values of recognized words, lines and paragraphs.
      See the API docs of `OcrResult.pages` for more details.
- 🐞 Bug fixes:
    * iOS: Fixed file URI handling in the native implementation of the `createPage()` method.


### Version 1.0.0 (6 Nov 2019):
- 🎉 First release.
