QR.Flutter is a Flutter library for simple and fast QR code rendering via a Widget or custom painter.

Features

  • Built on QR - Dart
  • Supports QR code versions 1 - 40
  • Error correction / redundancy
  • Configurable output size, padding, background and foreground colors
  • Export to image data to save to file or use in memory
  • No internet connection required

Installing

If you're using Flutter 1.2+ or the master/beta channel then you will need to use version 2.0.0 or higher as Flutter 1.2 is not compatible with earlier versions of the Flutter framework.

dependencies:
  qr_flutter: ^2.0.0

If you're using an older Flutter version (< 1.2.1), you must use version 1.1.6 if you cannot upgrade to the latest version of Flutter:

dependencies:
  qr_flutter: ^1.1.6

Note: If you're using the Flutter master channel, if you encounter build issues, or want to try the latest and greatest then you should use the master branch and not a specific release version. To do so, use the following configuration in your pubspec.yaml:

dependencies:
  qr_flutter:
    git:
      url: git://github.com/lukef/qr.flutter.git

Keep in mind the master branch could be unstable.

After adding the dependency to your pubspec.yaml you can run: flutter packages get or update your packages using your IDE.

Getting started

To start, import the dependency in your code:

import 'package:qr_flutter/qr_flutter.dart';

Next, to render a basic QR code you can use the following code (or something like it):

new QrImage(
  data: "1234567890",
  size: 200.0,
),

Depending on your data requirements you may want to tweak the QR code output. The following options are available:

PropertyTypeDescription
versionintA value between 1 and 40. See http://www.qrcode.com/en/about/version.html for details.
errorCorrectionLevelintA value defined on QrErrorCorrectLevel. e.g.: QrErrorCorrectLevel.L.
sizedoubleThe (square) size of the image. If not given, will auto size using shortest size constraint.
paddingEdgeInsetsPadding surrounding the QR code data
backgroundColorColorThe background color (default is none)
foregroundColorColorThe foreground color (default is black)
gaplessboolAdds an extra pixel in size to prevent gaps (default is true)

Example

See the example directory for a basic working example.

FAQ

Has it been tested in production? Can I use it in production?

Yep! It's stable and ready to rock. It's currently in use in quite a few production applications including:

Outro

Credits

Thanks to Kevin Moore for his awesome QR - Dart library. It's the core of this library.

For author/contributor information, see the AUTHORS file.

License

QR.Flutter is released under a modified MIT license. See LICENSE for details.

Libraries

qr_flutter