mofilo_barcode_verifier 1.0.1 copy "mofilo_barcode_verifier: ^1.0.1" to clipboard
mofilo_barcode_verifier: ^1.0.1 copied to clipboard

Barcode validation with GS1 checksum verification. Supports EAN-13, UPC-A, EAN-8, and UPC-E formats.

example/main.dart

import 'package:mofilo_barcode_verifier/mofilo_barcode_verifier.dart';

void main() {
  print('šŸ” Mofilo Barcode Verifier - Example Usage\n');

  final verifier = BarcodeVerifier();

  // Example 1: Basic Validation
  print('1ļøāƒ£ Basic Validation:');
  final cocaCola = verifier.verify('5449000000996');
  if (cocaCola.isValid) {
    print('āœ“ Valid ${cocaCola.barcodeType.name} barcode');
  } else {
    print('āœ— Invalid: ${cocaCola.message}');
  }
  print('');

  // Example 2: Invalid Barcode Detection
  print('2ļøāƒ£ Invalid Barcode Detection:');
  final invalid = verifier.verify('5449000000995'); // Wrong checksum
  print('Valid: ${invalid.isValid}');
  print('Status: ${invalid.status}');
  print('Message: ${invalid.message}');
  print('');

  // Example 3: Batch Verification
  print('3ļøāƒ£ Batch Verification:');
  final barcodes = [
    '5449000000996', // Coca-Cola (EAN-13)
    '012000001970', // Spam (UPC-A)
    '96385074', // EAN-8
    'invalid123', // Invalid
  ];

  final results = verifier.verifyBatch(barcodes);
  for (var i = 0; i < results.length; i++) {
    final result = results[i];
    final status = result.isValid ? 'āœ“' : 'āœ—';
    print('$status ${barcodes[i]}: ${result.barcodeType.name} - ${result.message}');
  }
  print('');

  // Example 4: Type Detection
  print('4ļøāƒ£ Barcode Type Detection:');
  final examples = {
    '5449000000996': 'EAN-13 (13 digits)',
    '012000001970': 'UPC-A (12 digits)',
    '96385074': 'EAN-8 (8 digits)',
    '425261': 'UPC-E (6 digits)',
  };

  examples.forEach((barcode, description) {
    final type = verifier.detectType(barcode);
    print('$barcode → ${type.name} ($description)');
  });
  print('');

  // Example 5: Quick Validation
  print('5ļøāƒ£ Quick Boolean Check:');
  final quickCheck = verifier.isValid('5449000000996');
  print('Is Coca-Cola barcode valid? $quickCheck');
  print('');

  // Example 6: Real-World Scenario
  print('6ļøāƒ£ Real-World Food Scanner Scenario:');
  print('Scanning products at checkout...\n');

  final scannedProducts = [
    ('5449000000996', 'Coca-Cola'),
    ('8000500037447', 'Nutella'),
    ('9002490100070', 'Red Bull'),
    ('051000012081', 'Campbell Soup'),
  ];

  int validCount = 0;
  for (final (barcode, productName) in scannedProducts) {
    final result = verifier.verify(barcode);
    if (result.isValid) {
      validCount++;
      print('āœ“ $productName: Valid ${result.barcodeType.name}');
    } else {
      print('āœ— $productName: ${result.message}');
    }
  }

  print('\nSummary: $validCount/${scannedProducts.length} products validated successfully');
  print('');

  // Example 7: Error Handling
  print('7ļøāƒ£ Error Handling:');
  final testCases = [
    '',                   // Empty
    'ABC123',            // Non-numeric
    '12345',             // Wrong length
    '544 900 000 099 6', // Contains spaces
  ];

  for (final barcode in testCases) {
    final result = verifier.verify(barcode);
    print('Input: "$barcode"');
    print('  Status: ${result.status}');
    print('  Message: ${result.message}');
    if (result.errors.isNotEmpty) {
      print('  Errors: ${result.errors.join(", ")}');
    }
    print('');
  }

  // Example 8: JSON Serialization
  print('8ļøāƒ£ JSON Serialization:');
  final result = verifier.verify('5449000000996');
  final json = result.toJson();
  print('Result as JSON:');
  json.forEach((key, value) {
    print('  $key: $value');
  });
  print('');

  // Example 9: Different Regions
  print('9ļøāƒ£ Global Coverage:');
  final globalProducts = {
    '5449000000996': 'Europe - Coca-Cola',
    '012000001970': 'USA - Spam',
    '8000500037447': 'Italy - Nutella',
    '9002490100070': 'Austria - Red Bull',
    '4006040052425': 'Germany - Haribo',
  };

  globalProducts.forEach((barcode, product) {
    final result = verifier.verify(barcode);
    final status = result.isValid ? 'āœ“' : 'āœ—';
    print('$status $product: ${result.barcodeType.name}');
  });

  print('\n✨ All examples completed!');
}
0
likes
155
points
2
downloads

Publisher

verified publishermofilo.app

Weekly Downloads

Barcode validation with GS1 checksum verification. Supports EAN-13, UPC-A, EAN-8, and UPC-E formats.

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

flutter, http

More

Packages that depend on mofilo_barcode_verifier