fintech_card_core 0.1.1
fintech_card_core: ^0.1.1 copied to clipboard
A headless Flutter plugin providing a universal card-reading engine for Fintech apps — NFC (EMV/ISO 7816), OCR, and manual entry. Native NFC hardware bridge via MethodChannel; all APDU/EMV logic in Dart.
import 'package:fintech_card_core/fintech_card_core.dart';
import 'package:flutter/material.dart';
import 'pages/manual_page.dart';
import 'pages/nfc_page.dart';
import 'pages/ocr_page.dart';
void main() => runApp(const ExampleApp());
class ExampleApp extends StatelessWidget {
const ExampleApp({super.key});
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'fintech_card_core',
debugShowCheckedModeBanner: false,
theme: ThemeData(
colorSchemeSeed: Colors.indigo,
useMaterial3: true,
),
home: const DemoHome(),
);
}
}
class DemoHome extends StatefulWidget {
const DemoHome({super.key});
@override
State<DemoHome> createState() => _DemoHomeState();
}
class _DemoHomeState extends State<DemoHome> {
final _controller = CardReaderController();
int _tab = 0;
@override
void dispose() {
_controller.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: const Text('fintech_card_core'),
centerTitle: true,
),
body: IndexedStack(
index: _tab,
children: [
OcrPage(controller: _controller),
NfcPage(controller: _controller),
ManualPage(controller: _controller),
],
),
bottomNavigationBar: NavigationBar(
selectedIndex: _tab,
onDestinationSelected: (i) => setState(() => _tab = i),
destinations: const [
NavigationDestination(
icon: Icon(Icons.camera_alt_outlined),
selectedIcon: Icon(Icons.camera_alt),
label: 'Camera',
),
NavigationDestination(
icon: Icon(Icons.nfc_outlined),
selectedIcon: Icon(Icons.nfc),
label: 'NFC',
),
NavigationDestination(
icon: Icon(Icons.keyboard_outlined),
selectedIcon: Icon(Icons.keyboard),
label: 'Manual',
),
],
),
);
}
}