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 responsiveness. 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)