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