Changelog | .NET Barcode Scanner
tip
For additional details about the API, please refer to our API reference documentation.
.NET - Version 7.0.0 (30 May 2025)
Android
- 🎉 New:
- Added advanced configuration to the Barcode Scanner that allows to further configure the barcode formats individually. See
IO.Scanbot.Sdk.Barcode.BarcodeScannerConfiguration
class for the Recognition on still image and the Classic Components. - Added support for new barcode formats that are used in the pharmaceutical industry:
PharmaCode
,PharmaCodeTwoTrack
,Pzn8
(Pharmazentralnummer) andPzn7
. - Added support for a new barcode document format
BarcodeDocumentFormat.Hibc
. - Lists of predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. Old predefined sets of barcode formats were removed. See
BarcodeFormats
. - Added new
BarcodeScannerEngineMode
types:NextGenLowPower
which is optimized for scanning on low power devices.NextGenFarDistance
which is optimized for scanning from far distances.NextGenLowPowerFarDistance
which is optimized for scanning from far distances on low power devices.
- Introduced a new barcode item object to better represent barcode results. See
BarcodeItem
. - Added an ability to filter out all unaccepted barcode document formats in
BarcodeDocumentParser
. UseScanbotSDK.ScanbotBarcodeScannerSDKComponent.BarcodeDocumentParser().ParseDocument(input: String, acceptedFormats: List<BarcodeDocumentFormat> = BarcodeDocumentFormats.all)
. - Introduced a boolean
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 supportStrictMode
forQrCode
,MicroQrCode
,RmqrCode
,Pdf417
,MicroPdf417
andGs1Composite
. - Images are now represented as references by using the
ImageRef
feature. - Added a flag
KeepScreenOn
toBarcodeScannerScreenConfiguration
for RTU-UI v2 Barcode Scanner screen. Iftrue
, as long as this window is visible, the device's screen will stay awake. - Added support of
MinimumSizeScore
property. SeeBarcodeFormatCommonConfiguration
for the Classic components and Recognition on still image. SeeBarcodeScannerConfiguration
for RT-UI v2. - Added the option to ignore barcodes that do not decode to one of the accepted document formats. See
BarcodeScannerConfiguration.OnlyAcceptDocuments
.
- Added advanced configuration to the Barcode Scanner that allows to further configure the barcode formats individually. See
- 🚀 Improvements:
- Significant speed improvements in live mode on very large input resolutions.
- Improved the false positive rate for
Itf
barcode format. - Improved quiet zone checks for the barcode formats
Itf
,Code11
,MsiPlessey
,Iata2Of5
,Industrial2Of5
andCode25
. - We additionally allow for checking
MaximumTextLength
for the barcode formatsCode11
,Code39
,Code93
,Code128
andCodabar
. - 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).
- 🐞 Bug fixes:
- Fixed screen insets for Android API 35 with forced edge-to-edge mode by opting it out for RTU-UI v1 screens.
- RTU-UI v2: Fixed the modal dialog to no longer appear below the status bar.
- Clamped parametric filters radius to 127 to prevent asserts in openCV.
- Fixed an overflow when decoding a
MicroQrCode
barcode format with wrong bits in numeric mode. - Fixed
MinimumTextLength
forItf
barcode format. Before, we used it to check the number of symbols instead of the true text length. - Fixed returned results for all types of
UpcEanExtensionBehavior
. - Fixed checksum for
Code39
barcode format. - For
Code11
barcode format with exactly 10 data digits, enabled checksum and enabled flagStripCheckDigits
, we now strip both check digits. - Fixed sorting of quad points for four-state/postal barcode types.
- RTU-UI v2: fixed issue where
FindAndPickScanningMode.SheetContent.BarcodeItemImageVisible
was not properly applied. - RTU-UI v2: fixed accessibility content for action buttons.
- Fixed an issue when scanning
Code93
barcodes withstripCheckDigits = false
(default) and the check digit was an extension character.
- ⚠️ Breaking Changes:
- RTU-UI v1: Refactored the screen result structure for both single and batch scanning operations. See more here:
BarcodeScannerResult
. - RTU-UI v1: Removed the ability to set Barcode Image Generation type in the screen configuration.
- RTU-UI v2: Changed the result API of the screen. See more here:
BarcodeScannerUiResult
. - Renamed the
IScanbotBarcodeDetector
toIScanbotBarcodeScanner
. Also seeScanbotBarcodeScannerSDK.CreateBarcodeScanner()
instance method. - Updated the old configuration API of Barcode Scanner.
- In the RTU-UI v2, the
BarcodeScannerScreenConfiguration
is the primary configuration object, that wraps the existingBarcodeScannerConfiguration
object. - In the Still image recognition and the Classic Component's
IBarcodeScanner
interface,ModifyConfig(...)
method no longer exists. UseSetConfiguration(..)
instead.
- In the RTU-UI v2, the
- All Barcode Formats are represented by
IO.Scanbot.Sdk.Barcode.BarcodeFormat
enum. All other barcode format enums were removed. - Replaced class
IO.Scanbot.Barcode_Scanner.Model.BarcodeType
withIO.Scanbot.Sdk.Barcode.BarcodeFormat
. - Renamed enum
MSIPlesseyChecksumAlgorithm
toMsiPlesseyChecksumAlgorithm
. - Barcode Document Formats are represented by
IO.Scanbot.Sdk.Barcode.BarcodeDocumentFormat
enum. - Removed class
IO.Scanbot.Sdk.UI_v2.Common.Mappers.AspectRatio
, please useIO.Scanbot.Sdk.Common.AspectRatio
. - Replaced class
BarcodesExtensionFilter
withUpcEanExtensionBehavior
and propertyBarcodesExtensionFilter
withExtensions
. SeeBarcodeScannerConfiguration
in RTU-UI v2. - Replaced
AcceptedDocumentFormats
list parameter inBarcodeScannerConfiguration
withExtractedDocumentFormats
list of document formats andOnlyAcceptDocuments
flag.
- RTU-UI v1: Refactored the screen result structure for both single and batch scanning operations. See more here:
- 🚙 Under the hood:
- Updated the native SDK to Android Barcode SDK 7.0.2
- Updated Compile Sdk to 35
- Android Jetpack Compose updated to 1.7.8
- Upgraded nlohmann::json to 3.11.3
- Upgraded xsimd to 13.2.0
- Upgraded xtl to 0.8.0
- Upgraded xtensor to 0.26.0-scanbot
- Upgraded yaml-cpp to 0.8
- Upgrade OpenCV to 4.10
- Updated Boost C++ version to 1.88.0
- Updated spdlog version to 1.15.2
iOS
- 🎉 New:
- Added advanced configuration to the Barcode Scanner that allows to further configure the barcode formats individually. See
SBSDKBarcodeScannerConfiguration
class for recognition on still image and the Classic Components. - Added support for barcode types Pharma Code, Pharma Code Two Track, PZN (Pharmazentralnummer).
- Added support for the HIBC barcode document format.
- New predefined subsets (1D, 2D, Postal, Pharma, etc.) of barcode formats. See
SBSDKBarcodeFormats
. - Added new
BarcodeScannerEngineMode
types:NextGenLowPower
which is optimized for scanning on low power devices.NextGenFarDistance
which is optimized for scanning from far distances.NextGenLowPowerFarDistance
which is optimized for scanning from far distances on low power devices.
- Ability to configure the Barcode Scanner in the Classic UI and in the Still image recognition using the new
SetConfiguration(...)
method. SeeSBSDKBarcodeScanner
andSBSDKBarcodeScannerViewController
. - Introduced a new barcode item object to better represent barcode results. See
SBSDKBarcodeItem
. - Introduced
SBSDKBarcodeFormats
andSBSDKBarcodeFormat
that represent the barcode format sets and the individual barcode types respectively. - Ability to get the
ExtractedDocumentFormats
from the barcode document parser. SeeSBSDKBarcodeDocumentParser
. - Introduced a boolean
StrictMode
for certain barcode configurations. 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 supportStrictMode
for QR Code, Micro QR Code, rMQR Code, PDF417, MicroPDF417 and gs1Composite. - Images returned in scanner results are now represented as image references. See
SBSDKImageRef
. They can be converted toUIImage
objects using the methodToUIImage()
. - Ability to scan barcodes from frames of type of
SBSDKBaseScannerFrame
using the new methodSBSDKBarcodeScanner.Scan(from: SBSDKBaseScannerFrame, useLiveMode:)
. - Ability to initialize the Barcode Scanner using the new constructor
SBSDKBarcodeScanner(formats:, live:, extractedDocumentFormats:)
. - Introduced new property
OptimizeOverlays
toSBSDKBarcodeScanner
that generates more accurate barcode polygons for usage in tracking overlays. - Ability to configure the Barcode Scanner using the common barcode configurators, see
SBSDKBarcodeFormatCommonConfiguration
. - Ability to know when a barcode was last detected using the new property
SBSDKBarcodeScannerAccumulatingResult.DateOfLastDetection
. - Ability to process additional frames before they are passed to the main scanner using the new optional property
SBSDKBaseScannerViewController.AdditionalFrameProcessor
. - Added property
HardwareButtonsEnabled
toSBSDKBaseScannerViewController
(all Classic UI) which can be set tofalse
to restore the original volume button behavior. - Added properties
SessionDidChangeHandler
andIsSessionRunning
toSBSDKBaseScannerViewController
. - Added functions
Pause
andResume
toSBSDKBaseScannerViewController
.
- Added advanced configuration to the Barcode Scanner that allows to further configure the barcode formats individually. See
- 🚀 Improvements:
- 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 the false positive rate for ITF.
- 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 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 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).
- 🐞 Bug fixes:
- Fixed processing of still images of indexed color space model in Barcode Scanner.
- Fixed a bug in the Barcode Scanner RTU-UI v2 where the flip camera button was not resetting the widest camera available if chosen.
- Fixed a bug in
SBSDKBarcodeScannerViewController
that could have lead to a crash when embedded within aUIViewControllerRepresentable
. - Fixed a bug in the AR Barcode Scan and Count where the scanner would be stuck if there was no barcode detected.
- Fixed a UI bug in the Barcode Scanner RTU-UI v2 where the sheet button overlapped with the action bar.
- Fixed the returned results for all types of
SBSDKUpcEanExtensionBehavior
. - Fixed the checksum of the Code 39 barcode format.
- Fixed an issue when scanning Code 93 barcodes with
stripCheckDigits = false
(default) and the check digit was an extension character.
- ⚠️ Breaking changes:
- Removed property
Code
inSBSDKBarcodeScannerAccumulatingResult
, use the propertyItem
instead. - Removed properties
AcceptedBarcodeTypes
,AcceptedDocumentTypes
,ExtensionFilter
,AdditionalDetectionParameters
,AcceptedDocumentTypes
,UseLiveMode
,RegularExpressionPattern
andEngineMode
inSBSDKBarcodeScannerViewController
, please use the newCopyCurrentConfiguration()
andSetConfiguration(...)
methods, seeSBSDKBarcodeScannerConfiguration
. - Removed existing constructors and multiple overloads of
DetectBarCodes
methods fromSBSDKBarcodeScanner
class. Added new constructor that usesSBSDKBarcodeScannerConfiguration
to initialize the scanner and the detect methods have been renamed toScan
. - Removed enum
SBSDKBarcodeImageGenerationType
and propertyBarcodeImageGenerationType
fromSBSDKBarcodeScannerViewController
andSBSDKUIBarcodeScannerBehaviorConfiguration
. - Replaced class
SBSDKPolygonEdge
withSBSDKLineSegment
. - Replaced enum
SBSDKPolygonEdgeOrientation
withSBSDKLineSegmentOrientation
. - Renamed class
SBSDKBarcodeType
toSBSDKBarcodeFormat
. - Renamed class
SBSDKBarcodeDocumentRootType
toSBSDKBarcodeDocumentFormat
. - Renamed constructor parameter from
SBSDKBarcodeScannerAccumulatingResult(barcodeResult:)
toSBSDKBarcodeScannerAccumulatingResult(barcodeItem:)
. - Renamed method
FilterResults(...)
toFilterBarcodes(...)
inSBSDKBarcodeScannerViewControllerDelegate
. - Renamed class
SBSDKUI2BarcodeRecognizerConfiguration
toSBSDKBarcodeScannerConfiguration
. - Renamed class
SBSDKUI2BarcodeScannerResult
toSBSDKUI2BarcodeScannerUIResult
. - Updated the existing constructors of class
SBSDKBarcodeScannerViewController
by adding theconfiguration
property of typeSBSDKBarcodeScannerConfiguration
. - Updated all methods of
SBSDKBarcodeTrackingOverlayControllerDelegate
to use the newSBSDKBarcodeItem
object type. - Changed the method
Make(withBarcode:)
to use the newSBSDKBarcodeItem
inSBSDKTrackedBarcodeInfoViewable
. - Changed all methods of
SBSDKBarcodeScanAndCountViewController
to use the newSBSDKBarcodeItem
. - Updated the existing constructors of class
SBSDKBarcodeScanAndCountViewController
by adding theconfiguration
property of typeSBSDKBarcodeScannerConfiguration
. - Renamed parameter name
handler
tocompletion
inCreateNewWithConfiguration(...)
andPresentOn(...)
functions ofSBSDKUI2BarcodeScannerViewController
. - Replaced
SBSDKUI2BarcodesExtensionFilter
enum for RTU-UI v2 withSBSDKUpcEanExtensionBehavior
enum from Barcode Scanner Classic component API. - Renamed property
BarcodesExtensionFilter
inSBSDKUI2BarcodeScannerConfiguration
toExtensions
. - Renamed class
SBSDKBarcodesExtensionFilter
toSBSDKUIBarcodesExtensionFilter
. - Changed the display names of various barcode formats. See
SBSDKBarcodeFormat.Name
.- The changed names are
Australia Post
toAustralian Post
,CodaBar
toCodabar
,DataMatrix
toDatamatrix
,GS1 Databar Limited
toDatabar Limited
,EAN_13
toEAN 13
,EAN_8
toEAN 8
,IATA 2of5
toIATA 2 of 5
,INDUSTRIAL 2of5
toIndustrial 2 of 5
,MICRO PDF417
toMicro PDF 417
,MicroQRCode
toMicro QR
,QRCode
toQR
,RMQR Code
toRMQR
,UPC-A
toUPC A
, andUPC-E
toUPC E
.
- The changed names are
- Removed property
- 🚙 Under the hood:
- Updated the native SDK to iOS Barcode SDK 7.0.2
- The regex filters are applied for substrings instead of the entire output string.
- Upgraded nlohmann::json to 3.11.3.
- Upgraded xsmid to 13.2.
- Upgraded xtl to 0.8.
- Upgraded xtensor to 0.26.0-scanbot.
- Upgraded yaml-cpp to 0.8.
- Upgraded CLI11 to 2.5.
- Upgraded spdlog to 1.15.2.
- Upgraded Boost to 1.88.
.NET - Version 6.1.0 (29 Jan 2025)
Android
- 🎉 New:
- Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
AustraliaPostCustomerFormat
,UseIata2Of5Checksum
andUseCode11Checksum
toBarcodeScannerAdditionalConfig
andBarcodeRecognizerConfiguration
. - Added new property
AddAdditionalQuietZone
toBarcodeScannerAdditionalConfig
. - Added a new property
AllowEmptySubmission
inMultipleScanningMode
to allow submission of an empty barcode list in the Multiple Barcodes use case in RTU-UI v2. - Added a new predefined collection of barcodes,
BarcodeFormat.POSTAL
, which includes barcodes used in the postal industry. - Added
AustraliaPostCustomerFormat
enum to represent formats of the barcode data for the Australian Post customer barcode.
- 🚀 Improvements:
- AR overlay is enabled by default for
FindAndPickScanningMode
in Barcode Scanner RTU UI v2 screen. - For
CODE_128
andITF
, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly. - Added support for Extended Channel Interpretation (ECI) for Data Matrix and Aztec barcodes.
- Improved GS1 string handling with new modes for decoding and validation. See
Gs1Handling
. - Improved detection of UPC/EAN barcode extensions in live mode.
- The Barcode Scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- AR overlay is enabled by default for
- 🐞 Bug fixes:
- Fixed the height of the bottom sheet component for the Barcode Scanner RTU UI v2 screen.
- Fixed KANJI mode for QR codes.
- Fixed a bug with incorrect raw bytes returned for some 2D barcode types.
- Fixed an issue with AR Overlay and barcode mapping in
BarcodeScannerActivity
RTU UI v2, where the mapped image wasn't shown on the AR Overlay until the same barcode appeared in the list below. - Minor fixes for the Barcode Scanner appearance in RTU UI v2 to make it consistent with its iOS counterpart.
- Fixed R8 obfuscation config for SDK logging classes.
- ⚠️ Breaking Changes:
- Removed enum
BarcodeDensity
.- Removed property
CodeDensity
fromBarcodeAdditionalParameters
.
- Removed property
- Removed enum values
Validate
andDecode
fromGS1Handling
and replaced them withDecodeStructure
,DecodeFull
,ValidateStructure
andValidateFull
. - Removed redundant fields
barcodeImagePath
andbarcodePreviewFramePath
fromResult
class in Barcode Scanner RTU UI v2. - Changed
BarcodesRegexFilter
config behavior for Barcode Scanner RTU UI v2. Barcodes are accepted if the barcode data contains the part that matches the regex.
- Removed enum
- 🚙 Under the hood:
- Updated the native SDK to Android Barcode SDK 6.1.1
- Updated 3rd-party libraries:
- added
gs1-syntax-dictionary
lib
- added
iOS
- 🎉 New:
- Added a new property
HardwareButtonsEnabled
that enables snapping from the hardware volume buttons and the new hardware camera control button toSBSDKBarcodeScanAndCountViewController
, available on iOS 17.2 and later. - Added new zoom control slider controlled by the new camera control button on all view controllers, available on all the new iPhone 16 models.
- Added a new property
AllowEmptySubmission
toSBSDKUI2MultipleScanningMode
. - Added new property
AddAdditionalQuietZone
toSBSDKBarcodeAdditionalParameters
. - Added new property
PostalTypes
toSBSDKBarcodeType
. - Added support for new barcode types Maxicode, rMQR code, Code 11 and Code 32.
- Added properties
AustraliaPostCustomerFormat
,UseIATA2OF5Checksum
andUseCode11Checksum
toSBSDKBarcodeAdditionalParameters
andSBSDKUI2BarcodeRecognizerConfiguration
.
- Added a new property
- 🚀 Improvements:
- The AR-overlay in
SBSDKUI2FindAndPickScanningMode
is now visible by default. - For CODE_128 and ITF, we improved the recognition of barcodes generated by defective thermal printers that do not print certain black bars correctly.
- Added support for Extended Channel Interpretation (ECI) for Datamatrix and Aztec barcodes.
- Improved GS1 string handling with new modes for decoding and validation. See
SBSDKGS1Handling
. - Added the ability to display the scanned barcode's image in the Find and Pick use case of
SBSDKUI2BarcodeScannerViewController
by specifyingSBSDKUI2ExpectedBarcode.BarcodeImageKey
for the expected barcode'sImage
property. - Improved detection of UPC/EAN barcode extensions in live mode.
- The Barcode Scanner now supports transposed (mirrored/flipped) Aztec barcodes.
- The AR-overlay in
- 🐞 Bug fixes:
- Fixed a crash in scanners when setting the same
minZoom
andmaxZoom
inSBSDKZoomRange
. - Fixed KANJI mode for QR codes.
- Fixed a bug with wrong raw bytes returned for some 2D barcode types.
- Fixed a bug in RTU-UI v2 Barcode Scanner where extended barcodes were displayed along with their non-extended versions.
- Fixed a UI issue in the RTU-UI v2 Barcode Scanner where a title that was too long would cut off the cancel button.
- Fixed a UI issue in the RTU-UI v2 Find and Pick scanner in
button
sheet mode where the counter badge was not visible. - Fixed a bug that did not mirror the front camera as expected.
- Fixed a bug in
SBSDKUI2SingleScanDialogModelProvider
where the default displayed texts were not correct. - Fixed a UI issue on the RTU-UI v2 barcode sheet screen where the subtitle label was being vertically cut off.
- Fixed a UI issue on the RTU-UI v2 barcode confirmation sheet in the single use case where the loading indicator was not centered when the loading message was hidden.
- Fixed a bug in the Find and Pick use case of
SBSDKUI2BarcodeScannerViewController
that never showed the expected barcode's title, but always the barcode value. - Fixed a bug in
ScanbotColor
where settingisArgb
to true, resulted in a wrong color.
- Fixed a crash in scanners when setting the same
- ⚠️ Breaking Changes:
- Replaced the buggy initializer
init?(json: Data)
inSBSDKUI2BarcodeScannerConfiguration
by the static functionSBSDKUI2BarcodeScannerConfiguration.FromJsonWithJson
. - Removed enum
SBSDKBarcodeDensity
. - Removed property
CodeDensity
fromSBSDKBarcodeAdditionalParameters
. - Removed enum values
Validate
andDecode
fromSBSDKGS1Handling
and replaced them byDecodeStructure
,DecodeFull
,ValidateStructure
andValidateFull
.
- Replaced the buggy initializer
- 🚙 Under the hood:
- Updated the native SDK to iOS Barcode SDK 6.1.1
.NET - Version 5.1.0 (26 Jun 2024)
Android
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. See Ready-to-Use UI for documentation and various use cases.
- Added support for new barcode format BarcodeFormat.MicroPdf417.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- 🚀 Improvements:
- Optimized speed of the camera preview frames handling for all scanners.
- Changed the touch to focus square in ScanbotCameraXView to a circle.
- 🐞 Bug fixes:
- For BarcodeFormat.Pdf417, a single case to generate clusters was not covered, which led to a crash.
- Fixed issue with misaligned barcode polygons on some devices with horizontal orientation.
- Fixed SoundController crash on Android API <= 23.
- ⚠️ Breaking Changes:
- BatchBarcodeScannerActivity class from RTU UI v1 is now marked as 'Deprecated'.
- Renamed Rss14 barcode format to Databar and RssExpanded to DatabarExpanded.
- Removed BarcodeFormat.Code25 from BarcodeFormat.CommonCodes list.
- Deleted deprecated IsLicenseActive and IsLicenseValid from ScanbotBarcodeScannerSDK. Please use LicenseInfo.IsValid instead.
- ZoomRange can be created with any input values but will be limited under the hood by internal MinZoom (x0.2) and MaxZoom (x100) values.
- Replaced the class BarCodeFormattedResult by GenericDocument class for barcode document parser output.
- BarcodeExtensionsFilter now accepts EAN and UPC barcodes with extensions only and all other formats without extensions.
- 🚙 Under the hood:
- Updated the native SDK to Android Barcode SDK 5.1.0
- Updated 3rd-party libraries:
- libjpeg-turbo to 2.1.5.1
- libpng to 1.6.40
- libtiff to 4.6.0
- Added third-party library libzueci version 1.0.0.
- Extracted parts of ScanbotBarcodeScannerSDK API to the ILicensableSdk and IBarcodeScanningSdk interfaces.
- Migrated project to AGP 8.x.
- Added more rules for R8 shrinker to work adequately with AGP >= 8.
- Added Theme.AppCompat.NoActionBar theme as default for Barcode Scanner RTU UI v2 activity.
- Added Consumer Proguard rules for RTU UI v2 modules.
- Class SoundController was renamed to SoundControllerImpl and interface SoundController was extracted.
iOS
- 🎉 New:
- Added new freshly designed RTU-UI version 2 for Barcode scanning with advanced agile configuration. See Ready-to-Use UI for documentation and various use cases.
- Added support for new barcode type SBSDKUI2BarcodeFormat.MicroPdf417.
- Added support for parsing of AAMVA Certificate of Title for motor vehicle barcodes.
- Added various properties to SBSDKBaseScannerViewController and SBSDKBarcodeScannerViewController:
- Added new property RegularExpressionPattern to SBSDKBarcodeScannerViewController and SBSDKBarcodeScanner to limit detection results.
- Added IsCameraFrozen property to SBSDKBaseScannerViewController.
- Added new function ResetAccumulation to SBSDKBarcodeScannerViewController.
- Added the ViewFinderStyle property to SBSDKBaseScannerViewController.
- Added new classes for all the barcode document formats. See the API documentation for more details.
- Added a new class SBSDKBarcodeDocumentConstants which has all the constants related to the barcode document format.
- Added a new class SBSDKBarcodeDocumentRootType which replaces the old SBSDKBarCodeScannerDocumentFormat.
- Added possibility to inject an image to simulate a video stream and a captured image to any scanner's camera session for UI testing. See ScanbotSDKGlobal.TestData, SBSDKTestData and SBSDKSimulatedCameraMockData.
- Added streaming encryption support to SBSDKStorageCrypting.
- Added Privacy manifest file (PrivacyInfo.xcprivacy) to the SDK.
- Added new static property MaximumRecommendedImageSize to SBSDKDeviceInformation.
- 🚀 Improvements:
- 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.
- Improved speed and image quality of still image capturing.
- Improved image quality and capture speed on most iOS devices slightly by capturing HEIF images.
- Added support of haptic feedback on capable devices.
- SBSDKPDFPagesExtractor functions now create the output directory if it doesn't exist yet.
- Added support for structured logging (OSLog) to the SDK (iOS 14+).
- 🐞 Bug fixes:
- Changed privacy manifest to comply with the latest Apple specs.
- Fixes a bug with the asynchronous functions of SBSDKPDFPagesExtractor which returned an empty array of image URLs.
- Fixes a problem that slowed down still image capturing on some older iOS devices.
- Fixed a critical bug in the camera session causing still images to be captured at a lower than expected resolution.
- ⚠️ Breaking Changes:
- IMPORTANT: The default rear camera in all scanners has been changed from the ultra-wide or wide camera to the triple or dual camera.
- Deprecated SBSDKUIBarcodeScannerViewController and SBSDKUIBarcodesBatchScannerViewController along with their related classes. Please consider switching to the new SBSDKUI2BarcodeScannerViewController.
- Renamed function CaptureJPEGStillImage to CaptureStillImageWithCompletionHandler in SBSDKBaseScannerViewController (and all subclasses) and SBSDKCameraSession.
- Replaced the class SBSDKBarcodeDocumentType with SBSDKBarcodeDocumentRootType.
- Removed the protocol SBSDKBarCodeScannerDocumentFormat and all of its children classes.
- Changed SetLoggingEnabled to property IsLoggingEnabled in SBSDKLog.
- Changed all SBSDKBarcodeType global constants to static properties of SBSDKBarcodeType.
- Moved the global constants SBSDKBarcodeMetadataEANUPCExtensionKey and SBSDKBarcodeMetadataIsGS1MessageKey to SBSDKBarcodeScannerResult as its static properties.
- 🚙 Under the hood:
- Updated the native SDK to iOS Barcode SDK 5.1.0
- Added third-party library libzueci version 1.0.0
- Refactored all public SDK code to Swift.
.NET - Version 4.2.0 (6 Mar 2024)
- 🎉 New:
- Added support for several new barcode formats including:
AustraliaPost
DatabarLimited
Gs1Composite
JapanPost
RoyalMail
RoyalTntPost
UspsIntelligentMail
- Enhanced control over how to handle GS1 messages in barcodes.
- Added
CameraZoomRange
inBarcodeScannerConfiguration
andBatchBarcodeScannerConfiguration
.
- Added support for several new barcode formats including:
- 🐞 Bug fixes:
- Android:
- Optimized camera functionalities in
ScanbotCameraXView
. - Modified camera zoom functionalities to switch to zoom ratio.
- Optimized camera functionalities in
- iOS:
- Fixed UI issues in
SBSDKUIBarcodeScannerViewController
andSBSDKUIBarcodesBatchScannerViewController
.
- Fixed UI issues in
- Android:
- ⚠️ Breaking changes:
- GS1 codes are now handled differently for various barcode types. Using the default option
GS1Handling.Parse
will give the same result as before for all barcode types, except forBarcodeFormat.RssExpanded
. Previously, forRssExpanded
, the result was inconsistently returned with parentheses. Now, to get results with parentheses for all barcode types, choose the optionGS1Handling.Decode
.
- iOS:
- The method
DidDetect
in theBarcodeResultReceiver
class has been renamed toDidDetectResults
, and its signature now matches the updated method signature in theSBSDKUIBarcodeScannerViewControllerDelegate
interface.
- The method
- GS1 codes are now handled differently for various barcode types. Using the default option
- 🚙 Under the hood:
- iOS:
- Added new methods in
SBSDKCameraDevice
class for camera and licensing functionalities.
- Added new methods in
- The native Scanbot iOS SDK upgraded to v4.2.1.
- The native Scanbot Android SDK upgraded to v4.2.0.
- iOS:
.NET - Version 4.0.0 (9 Jan 2024)
- 🎉 New:
- iOS:
- Added new Classic UI component
SBSDKBarcodeScanAndCountViewController
which enables you to count barcodes from multiple scans using the shutter button. - Added property
ExtensionFilter
to all barcode scanning APIs (SBSDKBarcodeScanner
,SBSDKBarcodeScannerViewController
,SBSDKBarcodeScanAndCountViewController
,SBSDKUIBarcodeScannerBehaviorConfiguration
andSBSDKUIBarcodesBatchScannerBehaviorConfiguration
). - Added property
Extension
toSBSDKBarcodeScannerResult
. - Added
TrackingOverlayController
property toSBSDKBarcodeScannerViewController
. - Introduced new classes and protocols to manage barcode tracking overlay:
SBSDKBarcodeTrackingOverlayController
: Provides a customizable user interface for displaying barcodes and supports interaction with them.SBSDKBarcodeTrackingOverlayConfiguration
: Represents the configuration options for aSBSDKBarcodeTrackingOverlayController
.SBSDKBarcodeTrackedViewTextStyle
: Represents the style and kind of text rendered below a barcode.SBSDKBarcodeTrackedViewPolygonStyle
: Represents the style of the polygon rendered around a barcode.SBSDKTrackedBarcodeInfoView
: A protocol that defines the methods and properties required for a custom tracking view.
- Added functions to
SBSDKDeviceInformation
to get the total, used and unused disk space on the device. - Added new method
widestAvailableBackFacingCamera
toSBSDKCameraDevice
. - Added new method
setupDefaultLicenseFailureHandlerWithCompletion:
to theScanbot
class.
- Added new Classic UI component
- iOS:
- 🚀 Improvements:
- Android:
- It is now possible to color each barcode on the barcode AR overlay. Use
barcodeScannerView.selectionOverlayController.setBarcodeAppearanceDelegate(delegate: BarcodePolygonsView.BarcodeAppearanceDelegate)
to manage polygon appearance. - Reduced the number of barcode detector models from 3 to 2. The model used in Fast mode is now ~20% faster, about the same speed as Fastest mode.
- Fixed declaration of attributes
polygonStrokeDeclinedColor
andpolygonFillDeclinedColor
.
- It is now possible to color each barcode on the barcode AR overlay. Use
- iOS:
- RTU-UI configurations can now be initialized with partial/incomplete JSON data by internally merging the partial data into the configurations default values.
- Improved the speed of barcode recognition for most barcode symbologies.
- Android:
- 🐞 Bug fixes:
- Android:
- Removed conflicting "app_name" string resources from library modules.
- Fixed bug for
BarcodePolygonsStaticView
where it crashed ifbarcodeItemViewFactory
returnsnull
instead of view. - Before, for certain invalid decodings of QR and MicroQR codes, an exception was thrown from ZXing. Now we rigorously treat this as a format error.
- Before, we have returned CODE_25 results when INDUSTRIAL_2_OF_5 was enabled and CODE_25 was disabled. Now, we do not return the CODE_25 result for such decoding options.
- iOS:
- Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
- Fixed a crash when denying camera permission.
- Android:
- ⚠️ Breaking changes:
- Android:
- Removed methods from
BarcodePolygonsView
andBarcodeScannerView.selectionOverlayController
related to polygon and text view appearance. E.g.setStrokeColor
etc. Please useBarcodeAppearanceDelegate
instead! - Removed
UNKNOWN
barcode type from the API as it is applicable only for internal usage.
- Removed methods from
- iOS:
- Due to a Swift compiler naming collision, the class
ScanbotSDK
has been renamed toScanbotSDKGlobal
. - Renamed the class
ScanbotSDKUI
toScanbotUI
. - Removed barcode type
SBSDKBarcodeTypeUnknown
. - Removed
SelectionOverlayTextFor
fromSBSDKUIBarcodeScannerViewController
. - Renamed
SelectionOverlayEnabled
toIsTrackingOverlayEnabled
inSBSDKBarcodeScannerViewController
. - Renamed
SBSDKUIBarcodeSelectionOverlayConfiguration
toSBSDKUIBarcodeTrackingOverlayConfiguration
. - Renamed
SelectionOverlayConfiguration
totrackingOverlayConfiguration
inSBSDKUIBarcodeScannerConfiguration
andSBSDKUIBarcodesBatchScannerConfiguration
. - Renamed
PhotoQualityPriorization
toPhotoQualityPrioritization
everywhere in the SDK.
- Due to a Swift compiler naming collision, the class
- Android:
- 🚙 Under the hood:
- Removed reference to
Scanbot.NET.SDK.Dependencies
package for Android. Instead, the needed dependencies are referenced directly. - The native Scanbot Android SDK upgraded to v4.0.1.
- The native Scanbot iOS SDK upgraded to v4.0.3.
- Removed reference to
.NET - Version 3.7.0 (5 Oct 2023)
- 🎉 New:
- Both Android and iOS:.
- Added support for the Micro QR barcode type.
- Added view finder flag for barcode scanners (see more details below).
- Android:
- Added new function
SetViewFinderEnabled
to:IO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
IO.Scanbot.Sdk.UI.View.Barcode.Batch.Configuration.BatchBarcodeScannerConfiguration
- Introduced a scanned barcode confirmation dialog in
IO.Scanbot.Sdk.UI.Barcode_scanner.View.Barcode.BarcodeScannerActivity
RTU screen:- Added
SetConfirmationDialogConfiguration
toIO.Scanbot.Sdk.UI.View.Barcode.Configuration.BarcodeScannerConfiguration
for modifying dialog UI.
- Added
- Added Scan and Count of Barcodes feature.
- Use
IO.Scanbot.Sdk.Barcode.UI.BarcodeScanAndCountView
to integrate it into your app.
- Use
- Added new function
- iOS:
- Added new property
ViewFinderEnabled
to:ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Added new properties
ConfirmationDialogTitle
andConfirmationDialogMessage
toScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerTextConfiguration
.
- Added new function
FlipHorizontally
toScanbotBarcodeSDK.iOS.SBSDKPolygon
. - Added new property
IsMirrored
toScanbotBarcodeSDK.iOS.SBSDKCameraDevice
.
- Added new property
- Both Android and iOS:.
- 🚀 Improvements:
- Both Android and iOS:
- Improved accuracy and detection speed of several barcode types, such as QR_CODE, Code39, and Code93.
- Added support for inverted PDF-417 barcodes.
- iOS:
- Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
- All Classic UI components
- All RTU-UI components
- The
ScanbotBarcodeSDK.iOS.SBSDKZoomRange
class
- Support for generic documents in the MRZ recognizer.
- Changed the default zoom range from (0.0 - 3.0) to (0.0 - 12.0) in:
- Both Android and iOS:
- 🐞 Bug fixes:
- Android:
- Fixed a crash within the barcode detector.
- Fixed detection of several
RSS_EXPANDED
false-positives in live mode. - Fixed a bug causing incorrect (mirrored) preview when
CameraModule.Front
is set up forIO.Scanbot.Sdk.UI.Camera.ScanbotCameraXView
.
- iOS:
- Fixed the detection of a few false positive RSS Expanded codes in live mode.
- Fixed an unexpected behavior of the barcode scanner when passing
ScanbotBarcodeSDK.iOS.SBSDKBarcodeType.Unknown
as accepted barcode type. - Fixed a bug in all Classic UI and RTU-UI components where the
RecognitionEnabled
property might not have worked as intended. - Fixed a bug where
automaticSelectionEnabled
was not working properly inScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerViewController
. - Fixed a focusing issue with the new iPhone 15 Pro and 15 Pro Max.
- Fixed a crash when denying camera permission.
- Android:
- ⚠️ Breaking changes:
- iOS:
- Several delegate method names were renamed, such as:
ScanbotBarcodeSDK.iOS.SBSDKUIViewControllerDelegate
:ViewControllerShouldCancel
toShouldCancel
.ViewControllerShouldFinish
toShouldFinish
.
- Removed support for iOS 11.x and 12.x. The minimum deployment target to use ScanbotSDK in your app is iOS 13.0!
- Removed
ScanbotBarcodeSDK.iOS.SBSDKUIMachineCodesCollection
class. - Renamed the property
AcceptedMachineCodeTypes
toAcceptedBarcodeTypes
in:ScanbotBarcodeSDK.iOS.SBSDKUIBarcodeScannerBehaviorConfiguration
ScanbotBarcodeSDK.iOS.SBSDKUIBarcodesBatchScannerBehaviorConfiguration
- Several delegate method names were renamed, such as:
- iOS:
- 🚙 Under the hood:
- The native Scanbot Android SDK upgraded to v3.7.0.
- The native Scanbot iOS SDK upgraded to v3.7.0.
NET - Version 3.6.0 (20 July 2023)
- 🎉 First release of the
ScanbotBarcodeSDK.NET
NuGet package for Native iOS and Android APIs. - Provides Ready-To-Use UI Components - a set of easy to integrate Native wrappers of .NET based on iOS and Android native components for the most common tasks in Scanbot SDK:
- Barcode & QR code scanner
- Batch Barcode scanner
- Provides additional SDK features based on image picked from the device photos application:
- Detect Barcodes on Image
- New unified Scanbot SDK API:
- Idiomatic asynchronous design
- Example App demonstrating the new functionality: scanbot-barcode-sdk-maui-example
Want to scan longer than one minute?
Generate a free trial license to test the Scanbot SDK thoroughly.
Get your free Trial LicenseWhat do you think of this documentation?
What can we do to improve it? Please be as detailed as you like.