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