Flutter Barcode and QR Reader SDK

Download Trial

Try the Barcode Reader in Your Flutter App

Efficiently embed high-speed and reliable Flutter barcode reader into your mobile software using just a few lines of Dart code to meet your business needs. Support all common and rare barcode types including 1D barcodes, QR codes, postal codes, and more. Read the most challenging barcodes even when it’s upside-down, in low light, in motion, or in the rain. Optimized mobile video stream decoding in 1/1000 of a second.

  • Fast and Robust
  • Scan Multiple Barcodes
  • Customizable Scan Settings
  • Flexible Licensing
DCV flutter

System Requirements

Flutter & Dart

  • Flutter version: >=2.0.0
  • Dart version: >=2.12.0 <3.0.0


  • Supported OS: iOS 10.0 or higher.
  • Supported ABI: arm64 and x86_64.
  • Development Environment: Xcode 7.1 and above (Xcode 13.0+ recommended), CocoaPods 1.11.0+.


  • Supported OS: Android 5.0 (API Level 21) or higher.
  • Supported ABI: armeabi-v7a, arm64-v8a, x86 and x86_64.
  • Development Environment: Android Studio 3.4+ (Android Studio 4.2+ recommended).
  • JDK: 1.8+

Barcode and QR Code Scanner Mobile App

Transform mobile phones and tablets into enterprise-grade barcode scanning and data capture tools.

Supported Symbologies

Linear Barcodes (1D)

Code 39 (including Code 39 Extended), Code 93, Code 128, Codabar, Interleaved 2 of 5, EAN-8, EAN-13, UPC-A, UPC-E, Industrial 2 of 5, MSI (Modified Plessey), Code 11, GS1 DataBar

2D Barcodes

QR Code (including Micro QR Code), Data Matrix, PDF417 (including Micro PDF417), Aztec Code, MaxiCode (mode 2-5), DotCode

Postal Codes

USPS Intelligent Mail, Postnet, Planet, Australian Post, UK Royal Mail

Patch Code

GS1 Composite Code


Getting Started With Dynamsoft Flutter Barcode Reader

The Dynamsoft Flutter Barcode Reader SDK is available as an npm package. Build your own Flutter Barcode Reader app in a few lines of code:

Initialize the Project:

DCVBarcodeReader _barcodeReader = await DCVBarcodeReader.createInstance();
DCVCameraEnhancer _cameraEnhancer = await DCVCameraEnhancer.createInstance();
_cameraView.overlayVisible = true;
_barcodeReader.receiveResultStream().listen((List<BarcodeResult> res) {
    if (mounted) {
        setState(() {
            decodeResults = res;
await _cameraEnhancer.open();

Configure the Barcode Reader:

DBRRuntimeSettings currentSettings = await _barcodeReader.getRuntimeSettings();
currentSettings.barcodeFormatIds = EnumBarcodeFormat.BF_ONED;
currentSettings.expectedBarcodeCount = 10;
currentSettings.timeout = 500;
try {
    await _barcodeReader.updateRuntimeSettings(currentSettings);
} catch (e) {
    print('error = $e');

Check out our full Flutter documentation to learn more about customized settings for your usage scenario.

Ready to Take the Next Step?