見出し画像

barcode_scan2の使い方 Flutterでバーコードスキャンを行う

今回はbarcode_scan2について解説していきます。

barcode_scan2とは

barcode_scan2 はFlutterアプリでバーコードやQRコードをスキャンするためのライブラリです。iOSとAndroidの両方に対応しており、デバイスのカメラを利用してバーコードを読み取ります。barcode_scan2は、barcode_scanライブラリの後継として、より安定性と機能が改善されたバージョンです。

barcode_scan2の機能

バーコードとQRコードの読み取り

UPC、EAN、QRコードなど、さまざまな形式のバーコードやQRコードに対応しています。

クロスプラットフォームサポート

iOSとAndroidで同じコードで動作し、Flutterアプリでの一貫したユーザー体験が可能です。

カスタマイズオプション

スキャン画面のデザインやインターフェースをカスタマイズでき、ブランドに合わせたUI構築が可能です。


barcode_scan2の使い方

パッケージのインストール

pubspec.yamlにbarcode_scan2パッケージを追加します。

dependencies:
  barcode_scan2: ^4.1.0

flutter pub get コマンドを実行してインストールします。

パーミッション設定

iOSの場合、Info.plistにカメラの使用許可を追加します。

<key>NSCameraUsageDescription</key>
<string>カメラを使用してバーコードをスキャンします</string>

Androidの場合、AndroidManifest.xmlにカメラの権限を追加します。

<uses-permission android:name="android.permission.CAMERA" />

スキャン機能の実装

画面にスキャンボタンを追加し、ボタンが押されたときにカメラを起動してスキャンするコードを実装します。

import 'package:flutter/material.dart';
import 'package:barcode_scan2/barcode_scan2.dart';

class BarcodeScannerPage extends StatefulWidget {
  @override
  _BarcodeScannerPageState createState() => _BarcodeScannerPageState();
}

class _BarcodeScannerPageState extends State<BarcodeScannerPage> {
  String scanResult = "スキャンしたコードがここに表示されます";

  Future<void> scanBarcode() async {
    try {
      var result = await BarcodeScanner.scan();
      setState(() {
        scanResult = result.rawContent; // スキャン結果を表示
      });
    } catch (e) {
      setState(() {
        scanResult = "スキャンに失敗しました";
      });
    }
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: Text('バーコードスキャン')),
      body: Center(
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            Text(scanResult),
            SizedBox(height: 20),
            ElevatedButton(
              onPressed: scanBarcode,
              child: Text('スキャンを開始'),
            ),
          ],
        ),
      ),
    );
  }
}

動作確認

実機(AndroidまたはiOS)でアプリをビルドし、スキャンボタンを押すとカメラが起動してバーコード/QRコードをスキャンできます。


barcode_scan2の注意点

実機でのテストが必須

barcode_scan2はデバイスのカメラを使用するため、エミュレーターではスキャン機能をテストできません。実機でテストを行う必要があります。

パーミッション設定

iOSとAndroidでそれぞれカメラの使用許可設定が必要です。特にiOSでは、Info.plistにカメラ使用の理由を記述することが求められており、これを設定しないとアプリがクラッシュする可能性があります。

エラーハンドリング

カメラが拒否された場合や、ユーザーがスキャンをキャンセルした場合のために、適切なエラーハンドリングを実装することが推奨されます。エラーをキャッチしてユーザーに通知する処理があると、よりよいユーザー体験が提供できます。

パフォーマンスとリソース管理

カメラを使用するため、バッテリーやデバイスのリソースを消費します。長時間の連続使用には注意が必要です。

プラットフォームごとの互換性

barcode_scan2は特に最新のiOSやAndroidのバージョンでテストし、互換性を確認しておくことが推奨されます。特にOSの更新によって、予期しない挙動を起こす可能性があるため、定期的なテストが必要です。


Flutterをもっと詳しくなりたい方に

ゼロから学ぶFlutterアプリ開発


Flutter実践開発 ── iPhone/Android両対応アプリ開発のテクニック


Flutterアプリ開発講座(中級編)

※本ページではアフィリエイトリンク(PR)が含まれています


いいなと思ったら応援しよう!

この記事が参加している募集