Convert from RedLaser to the Scandit RedLaser Wrapper

Making use of the RedLaser wrapper is the fastest way of converting an app using the RedLaser Scanner to the Scandit Barcode Scanner Framework. The wrapper emulates the classes you know from the RedLaser library and maps its functionality onto the Scandit Barcode Scanner. As the libraries do not have the exact same functionality not all functions can be mapped.

If you are already using the new BarcodePickerController2 introduced with RedLaser 3.5 you will have to revert to what the BarcodePickerController does, as with the Scandit Barcode Scanner you once again have to set the symbologies that you want to decode (activating all symbologies at the same time is highly discouraged and can reduce the performance considerably). Because of this the wrapper makes all the symbology specific functions on the BarcodePickerController also available on the BarcodePickerController2.

Warning: If you try to use the BarcodePickerController2 without changes, no codes will be scanned as no symbologies will be activated.

Removing the RedLaser SDK

Remove the RedLaser library and resources from your project. Do not change your own classes that make use of the library.

Adding the Scandit Barcode Scanner Framework

Download the Scandit SDK

Choose a plan (e.g., “Consumer Apps”, "Professional Apps", or “Enterprise/OEM” plan) at http://www.scandit.com/pricing, activate your account and log in. Go to the Download section and download the Barcode Scanner for iOS.

Framework Download

Add frameworks required to your Xcode project

The Scandit SDK needs multiple frameworks that might not be part of your Xcode project yet. When coming from RedLaser you should only need to add libz.dylib and libc++.dylib. In any case make sure all the frameworks and libraries that are listed in the following screenshot are added to your project:

Frameworks to be added

Add the SDK to your project

Unpack the downloaded ZIP file and open the folder named ScanditSDK, it contains the ScanditBarcodeScanner framework. Drag and drop the framework into your Xcode project. Make sure to select "Copy items if needed" to copy the framework into your project's folder.

Frameworks to be added


The framework contains resources that you have to link to in the project. For this right click on the ScanditBarcodeScanner framework inside your project and select "Show in Finder". Go to ScanditBarcodeScanner.framework/Resources and drag and drop ScanditBarcodeScanner.bundle into your Xcode project. In the end it should look the following way:

Frameworks to be added

Making use of the RedLaser wrapper

Add the wrapper classes

Download the RedLaser Wrapper for iOS and unpack the zip file containing the wrapper classes. Add them to your XCode project.

Setting the License Key

Instead of the license xml of RedLaser you will be passing an license key to the SBSLicense class (you have to import the ScanditBarcodeScanner framework for this as shown below). You generally want to do this in your app delegate's applicationDidFinishLaunching: function. The license key is available from your Scandit SDK account at http://account.scandit.com (under the "License Keys" section).

#import <ScanditBarcodeScanner/ScanditBarcodeScanner.h>
...
[SBSLicense setAppKey:@"##LicenseKey##"];

You're done

The wrapper takes care of everything else! You are already done!

Warning: If you have been using the BarcodePickerController2 before and have not yet enabled the symbologies that you want to scan, you have to do this before anything scans.

Unsupported functions

As touched on previously not all functions can be directly mapped from one library to the other. This section lists the functions of the RedLaser scanner that are not mapped to the Scandit Barcode Scanner. Most of the functionality covered by these functions exist in the Scandit Barcode Scanner but is available in a way that does not allow for a one-to-one mapping. If you want to make use of functionality like this anyway you will have to properly convert to using the Scandit Barcode Scanner instead of the wrapper. Check out Convert from RedLaser to the Scandit Barcode Scanner for this.

orientation and setOrientation:

The Scandit Barcode Scanner automatically adjusts itself according to the orientation of the phone set through the standard UIViewController functions. There is no need to set any orientation.

prepareToScan

Can't be directly mapped onto an existing function.

overlay and setOverlay:

Can't be directly mapped onto an existing function.

activeRegion and setActiveRegion:

Can't be directly mapped onto an existing function.

clearResultsSet

Can't be directly mapped onto an existing function.

requestCameraSnapshot

Can't be directly mapped onto an existing function.

canFocus and isFocusing

Equivalent functions do not exist.

startCollectingLocationData

An equivalent function does not exist.

reportUnwantedBarcode:

An equivalent function does not exist.