## 2.13.0 (20 July 2023)
- 🎉 New:
    * 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. Now it's 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 method `CroppingController.setNewPage` to set a new page object to the cropping controller. This method is useful when you want to change the page object in `ScanbotCroppingWidget` without rebuilding it.
- 🐞 Bug fixes:
    * Fixed bug with  `ScanbotSdk.refreshImageUris` method on Android. Now it renews uris properly.
- ⚠️ 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 native sdk's. Please check example app and documentation for more details.
    * Refactored imports structure inside the 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:
    * Added dart library `dart:collections` to the internal usage of the scanbot_sdk.
    * Updated the native iOS Scanbot SDK to 2.3.0
      (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/))

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

## 2.12.0 (5 May 2023)
- 🎉 New:
    * Added `IATA_2_OF_5`, `INDUSTRIAL_2_OF_5` and `CODE_25` barcodes format to `BarcodeFormat`.
- 🚀 Improvements:
    * Improved behavior of classic ui components for asynchronous communication with the native SDK.
- ⚠️ Breaking Changes:
    * Changed structure of `MedicalCertificateRecognizerResult`:
        + `MedicalCertificateInfoBox` type splitted into `MedicalCertificatePatientInfoField` and `MedicalCertificateCheckBox`.
        + `McPatientInfoField` renamed to `MedicalCertificatePatientInfoField`.
        + `McInfoBoxSubType` renamed to `MedicalCertificateCheckBoxType`.
        + `McPatientInfoFieldType` renamed to `MedicalCertificatePatientInfoFieldType`.
        + `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/))


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

## 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.
  * Added `camera.stopPreview()` and `camera.resumePreview()` methods.
  * Added mechanism to properly handle classical scanner lifecycle on closing app to the background and back when the scanner is open.
  * Added mechanism to properly handle classical scanner lifecycle during the navigation of camera in stack. Please register `MaterialApp(navigatorObservers: [ScanbotCamera.scanbotSdkRouteObserver])` in the app root screen.
- 🚙 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/))

## 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

## 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/))

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

## 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 components. `BarcodeScannerCamera`, `BarcodeCameraLiveDetector` and `ScanbotCameraController` to build a custom Barcode and QR-Code scanning.
- 🚀 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/))

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

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

## 2.8.1 (16 March 2022)
- 🐞 Bug fixes:
  * Fixed `LicenseExpirationDate`: Invalid date format.
    
## 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/))
  
## 2.7.0 (3 Dec 2021)
- 🎉 New:
  * Added `createPageFromBytes` function to create a page object without storing a temporary image file 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

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

## 2.5.0
- 🎉 New:
  * Added NFC Passport Reader. 
  * Add License Plate scanner for EU cars license plates.
- 🚙 Under the hood:
  * Updated the native iOS Scanbot SDK to 1.15.1
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))
  * Updated the native Android Scanbot SDK to 1.83.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))
    
## 2.4.1
- 🐞 Bug fixes:
  * iOS: Fixed a mapping issue of the config parameter `flashButtonHidden` in the Document Scanner.

## 2.4.0
- 🎉 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`
  
## 2.3.0
- 🎉 New:
  * Encryption for images, PDF, and TIFF files, generated by the SDK.
    For more details please check out the section "Storage Encryption" of the documentation.
  * Blur estimation feature. See the new API function `estimateBlurOnPage`.
- 🐞 Bug fixes:
  * iOS: Multiple UI fixes for barcode scanners. 
- 🚙 Under the hood:
  * Updated the native iOS Scanbot SDK to 1.14.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))
  * Updated the native Android Scanbot SDK to 1.80.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))

## 2.2.2
- ⚠️ 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

## 2.2.1
- 🐞 Bug fixes:
  * Added missing permission text properties `enableCameraButtonTitle`
   and `enableCameraExplanationText` to `DocumentScannerConfiguration` 
   
## 2.2.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 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](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))
  * Updated the native iOS Scanbot SDK to 1.13.0
    (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))

## 2.1.0
- 🐞 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"
    of the documentation.
  * iOS: Fixed de-/serialization of the property `Page.detectionStatus`.
  
## 2.0.1
- 🚀 Improvements:
  * iOS: Swift 5 support

## 2.0.0
- 🎉 New:
  * A new Machine Learning based approach for document detection. See the new SDK initialization 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`.
- 🚀 Improvements:
  * Android: Some big improvements in the Document Scanner UI that make document scanning perform better and much smoother. 
    Increased 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](https://docs.scanbot.io/document-scanner-sdk/android/changelog/))
  * Upgraded the native Scanbot iOS SDK to v1.11.6 
  (cf. [changelog](https://docs.scanbot.io/document-scanner-sdk/ios/changelog/))

## 1.1.4
- 🚀 Improvements:
  * iOS: Changed presenter logic for all Scanbot SDK RTU UI screens.

## 1.1.3
- 🐞 Bug fixes:
  * iOS: Fixed a mapping issue of the config parameter `doneButtonTitle` in Cropping UI.

## 1.1.2
- 🚀 Improvements:
  * `OperationResult.CANCELED` when the user presses `cancel` in any Scanbot UI screen component.

## 1.1.1
- 🐞 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`). 

## 1.1.0
- 🎉 New:
  * Added further TIFF options `dpi` and `compression`. See `createTiff(pages, options)`.
- 🚀 Improvements:
  * Improved OCR API. The OCR results contain now 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.

## 1.0.0
- 🎉 First release

## 0.9.0-beta.7
- Beta version

## 0.9.0-beta.6
- First beta version
