pub points pub points pub points License: MIT style: effective dart All Contributors

ez_qr Awesome Flutter

This is a forked package from @hetian9288


QR code (scan code/picture) recognition(AndroidView/UiKitView)

A package that allows you to use the native camera to read qr code through images/files and has the flexibility to customize the view.

Currently supported features

  • Supports Android and iOS devices
  • Place the QR code inside the square/custom_shape frame to get the information from QR code
  • Select QR code from your local library from the image picker inside the ScanView
  • Uses OS default native camera
  • Accepts different types of standard and custom shapes (media, image, video, audio or any)

If you have any feature that you want to see in this package, please feel free to issue a suggestion. 🎉

Qr code reader with default view

import 'package:ez_qr/ez_qr.dart';

void main() => runApp(MyApp());

class MyApp extends StatelessWidget {
  Widget build(BuildContext context) {
    return MaterialApp(home: HomePage());

class HomePage extends StatefulWidget {
  HomePage({Key? key}) : super(key: key);

  _HomePageState createState() => new _HomePageState();

class _HomePageState extends State<HomePage> {
  String result = '';

  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('Package example app'),
      body: Padding(
        padding: const EdgeInsets.symmetric(horizontal: 32),
        child: Column(
          crossAxisAlignment: CrossAxisAlignment.stretch,
          children: <Widget>[
              onPressed: () async {
                String? results = await Navigator.push(
                    builder: (context) => ScanView(

                if (results != null) {
                  setState(() {
                    result = results;
              child: Text('Tap to scan'),
            Center(child: Text(result)),


Opt-in to the embedded views preview by adding a boolean property to the app's Info.plist file with the key io.flutter.embedded_views_preview and the value YES.


And you will need provide the description of camera's permission to work properly, otherwise will crash your app.

	<string>The porpuse explaining why you will use the camera</string>