flexible_barcode_scanner 0.0.13 copy "flexible_barcode_scanner: ^0.0.13" to clipboard
flexible_barcode_scanner: ^0.0.13 copied to clipboard

A highly customizable Flutter package for integrating a barcode scanner into your applications.

Flexible Barcode Scanner #

A highly customizable and efficient barcode scanner library built with Flutter. This package uses the camera package and Google ML Kit Barcode Scanning capabilities to provide real-time barcode scanning with additional features like overlay animation and custom configurations.

Features #

  • Customizable Camera View: Modify the camera preview with custom overlays and actions.
  • Barcode Detection: Supports various barcode formats using Google ML Kit.
  • Format Selection: Scan only specific barcode formats (QR codes, EAN-13, Code 128, etc.) or all formats. Uses built-in FlexibleBarcodeFormat enum - no extra imports needed!
  • Animated Overlay: Includes a sleek animation for scanning feedback.
  • Camera Switch: Easily switch between front and rear cameras.
  • Flashlight Toggle: Enable or disable flashlight for better scanning in low light.
  • Platform Compatibility: Fully supports both Android and iOS platforms.
  • Example ScreenShots:
Image 1 Image 2 Image 3

Installation #

pubspec.yaml

dependencies:
  flexible_barcode_scanner: ^0.0.13

Setup #

Ios #

Podfile

platform :ios, '15.5.0'  # or newer version
# add this line:
$iOSVersion = '15.5.0'  # or newer version

post_install do |installer|
    # add these lines:
    installer.pods_project.build_configurations.each do |config|
      config.build_settings["EXCLUDED_ARCHS[sdk=*]"] = "armv7"
      config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
  end
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    # add these lines:
    target.build_configurations.each do |config|
    if Gem::Version.new($iOSVersion) > Gem::Version.new(config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'])
        config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = $iOSVersion
      end
    end
  end
end

Info.plist

<key>NSCameraUsageDescription</key>
<string>Camera permission is required to scan barcodes</string>

Android #

android/App/build.gradle

minSdkVersion: 21
targetSdkVersion: 33
compileSdkVersion: 34

android/app/src/main/AndroidManifest.xml

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT" />

Usage #

Basic Usage #

import 'package:flexible_barcode_scanner/flexible_barcode_scanner.dart';

String barcode = "";
final resultbarcode = await scanBarcode(
  context,
  backButtonIcon: const Icon(
    Icons.arrow_back,
    color: Colors.blue,
  ),
  loadingWidget: CircularProgressIndicator(
    color: Colors.green,
  ),
  flashButtonIcon: const Icon(
    Icons.sunny,
    color: Colors.yellow,
  ),
  openedFlashIcon: const Icon(
    Icons.dark_mode,
    color: Colors.red,
  ),
  switchCameraButtonIcon: const Icon(
    Icons.camera_alt,
    color: Colors.orange,
  ),
  strokeColor: Colors.purple,
  lineColor: Colors.pink,
  backButtonBackgroundColor: Colors.cyanAccent,
  flashBackgroundColor: Colors.indigo,
  initialCameraDirection: CameraDirection.back,
  switchCameraBackgroundColor: Colors.amber,
);
setState(() {
  if (resultbarcode != "-1") {
    barcode = resultbarcode;
  }
});

Scanning Only QR Codes #

import 'package:flexible_barcode_scanner/flexible_barcode_scanner.dart';

final resultbarcode = await scanBarcode(
  context,
  barcodeFormats: [FlexibleBarcodeFormat.qrCode],
);

Scanning Only Specific Barcode Formats #

import 'package:flexible_barcode_scanner/flexible_barcode_scanner.dart';

final resultbarcode = await scanBarcode(
  context,
  barcodeFormats: [
    FlexibleBarcodeFormat.ean13,
    FlexibleBarcodeFormat.code128,
    FlexibleBarcodeFormat.code39,
  ],
);

Scanning All Formats (Default) #

import 'package:flexible_barcode_scanner/flexible_barcode_scanner.dart';

final resultbarcode = await scanBarcode(context);
// or
final resultbarcode = await scanBarcode(
  context,
  barcodeFormats: [FlexibleBarcodeFormat.all],
);

Supported Platforms #

  • Android
  • iOS

Additional information #

3
likes
150
points
112
downloads

Publisher

verified publisherdevastral.tr

Weekly Downloads

A highly customizable Flutter package for integrating a barcode scanner into your applications.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

camera, flutter, google_mlkit_barcode_scanning

More

Packages that depend on flexible_barcode_scanner