Barcode Bill Scanner

Barcode scanner build for Flutter.

Barcode Bill Scanner aims to be used by brazilian apps willing to get a readable code from a horizontal barcode, mainly from bills. Brazilian's pattern for barcode is defined by FEBRABAN, which has a couple of rules for transforming a regular 44-length code into 47~48 character long.

Our package converts the barcode by default to FEBRABAN's format but can easily be turned off if necessary.

How to use

  @override
  Widget build(BuildContext context) {
    return BarcodeBillScanner(
      onCancelLabel: "You can set a message to cancel an action",
      onSuccess: (String value) async {
        setState(() => barcode = value);
      },
      onCancel: () {
        setState(() => barcode = null);
      },
    );
  }

Requirements

iOS
  • Minimum iOS Deployment Target: 10.0
  • Xcode 12 or newer
  • Swift 5
  • ML Kit only supports 64-bit architectures (x86_64 and arm64). Check this list to see if your device has the required device capabilities.

Since ML Kit does not support 32-bit architectures (i386 and armv7) (Read mode), you need to exclude amrv7 architectures in Xcode in order to run flutter build ios or flutter build ipa.

Go to Project > Runner > Building Settings > Excluded Architectures > Any SDK > armv7

Then your Podfile should look like this:

# add this line:
$iOSVersion = '10.0'

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
Android
  • minSdkVersion: 21
  • targetSdkVersion: 29

Libraries

barcode_bill_scanner
bill_scan_camera.widget
bill_util.class
only_numbers
process_image.isolate