iz_scan

IZScan Flutter Plugin

IZScan is a Flutter plugin that streamlines the process of integrating credit/debit card scanning functionality into your mobile applications. This plugin simplifies the capture of card details, making it easy to implement secure and efficient card scanning features for various financial and payment-related applications.

Platform Support

Android iOS macOS Web Linux Windows
:x: :x: :x: :x:

Getting Started

To begin using IZScan in your Flutter project, follow these steps:

Add the IZScan dependency to your pubspec.yaml file:

dependencies:
  iz_scan: ^0.0.1

Make sure to check for the latest version on pub.dev.

Run the following command to install the package:

flutter pub get

Don't forget run for ios

pod install under app/ios folder

Import the IZScan package in your Dart code:

import 'package:iz_scan/iz_scan.dart';

Start using IZScan to enhance your app with card scanning capabilities!

Usage

final ValueNotifier<CardInfoModel?> _cardInfo = ValueNotifier(null);
late StreamSubscription<CardInfoModel?> _streamSubscription;

 @override
  void initState() {
    super.initState();
    
    _streamSubscription = IZScan.cardScanStream.listen(
      (cardStreamInfo) {
        if (cardStreamInfo != null) {
          _cardInfo.value = cardStreamInfo;
        }
      },
      onError: (error) {
        if (kDebugMode) {
          print('Error during card scan: $error');
        }
      },
    );
  }

  @override
  void dispose() {
    // Cancel StreamSubscription
    _streamSubscription.cancel();
    super.dispose();
  }

// To call scanner
GestureDetector(onTap: () => await IZScan.startCardScan(),)

Platform-specific Requirements

Android:

Minimum SDK Version:minSdkVersion 21 or higher.

Ensure the following permissions are added to your AndroidManifest.xml file:

<uses-permission android:name="android.permission.CAMERA" />
<uses-permission android:name="android.permission.FLASHLIGHT"/>
<uses-permission android:name="android.permission.INTERNET" />
<uses-feature android:name="android.hardware.camera" android:required="false" />
<uses-feature android:name="android.hardware.camera.autofocus" android:required="false" />

iOS:

Minimum iOS Version: 13 or higher.

Add the following entry to your Info.plist file:

<key>NSCameraUsageDescription</key>
<string>We need access to your camera to scan credit/debit cards.</string>

Integration Tips For Android, make sure that your minSdk in the app's build.gradle android/build.gradle is set to 21 or higher:

android {
    defaultConfig {
        minSdkVersion 21
        // other configurations...
    }
}

and implement this dependencies in the app's build.gradle android/build.gradle

dependencies {
    implementation 'com.getbouncer:cardscan-ui:2.1.0004'
    implementation 'com.getbouncer:tensorflow-lite:2.1.0004'
    implementation "com.getbouncer:scan-payment-full:2.1.0004"
}

For iOS, ensure that your deployment target is set to 13.0 or higher in your Xcode project settings.

Keep your camera permission handling logic up-to-date with the latest Flutter and plugin versions.

Need Help? Refer to the Flutter documentation for more information on Flutter development. If you encounter any issues specific to IZScan, please check the plugin's GitHub repository for updates or open an issue for assistance.

Credits