Skip to main content
Not sure which Scandit product fits your use case?

Install the Scandit plugin and use the /data-capture-sdk skill so that your AI coding agent can recommend the right product for your use case. More info →

Run the following command in your project directory. It detects the supported coding agents you have installed and adds the Scandit plugin to each. Re-run it to update.

npx plugins add scandit/skills

Prefer to set it up yourself? Manual installation steps for each agent →

Advanced Configurations

MatrixScan Pick is optimized by default for efficiency, accuracy, and a seamless user experience. However, there are multiple advanced settings available to further customize MatrixScan Pick to best fit your needs.

BarcodePick Listener

You may want more fine-grained knowledge over the different events happening during the life of the BarcodePick mode, such as when the search starts, pauses, and stops.

To do this, you can directly register a BarcodePickListener on the mode itself, keeping in mind that these listeners are called from a background thread.

extension ViewController: BarcodePickListener {
func barcodePick(_ barcodePick: BarcodePick, didUpdate session: BarcodePickSession) {
// This callback will be invoked on a background thread every frame. The session object contains
// updated the newly tracked items.
}
}

BarcodePickView Listener

For lifecycle events on the BarcodePickView itself — when scanning starts, freezes, pauses, or stops — register a BarcodePickViewListener on the view. All callbacks are optional; implement only the ones you need.

extension ViewController: BarcodePickViewListener {
func barcodePickViewDidStartScanning(_ view: BarcodePickView) {
// Invoked when the view starts scanning (e.g. after a call to start()).
}

func barcodePickViewDidFreezeScanning(_ view: BarcodePickView) {
// Invoked when the view freezes the current frame (e.g. after a call to freeze()).
}

func barcodePickViewDidPauseScanning(_ view: BarcodePickView) {
// Invoked when the view pauses scanning (e.g. after a call to pause()).
}

func barcodePickViewDidStopScanning(_ view: BarcodePickView) {
// Invoked when the view stops scanning (e.g. after a call to stop()).
}
}

Register it on the view:

barcodePickView.addListener(self)