Skip to main content
Speed up MatrixScan Pick integration with Agent Skills

Install the Scandit plugin and use the /matrixscan-pick-ios skill so that your AI coding agent can integrate, debug, and customize MatrixScan Pick on iOS following Scandit's recommended patterns. 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)