はじめに
画像ファイルのQRコードを手軽に読み取りたいなと思い
まず、機能ライブラリが充実している Flutter が真っ先に選択対象となった
dev.pub でパッケージを探索して、Windows 対応している flutter_zxing を使ってみた
先に結論
flutter_zxing は Windows 対応したいな~って予定(WIP)の状態でビルドしようとすると、C++ コンパイルでエラー大量発生してビルドできないで終わる
そこでいろいろと足掻いたが、pub.dev の README にその答えが有った
2024-07-10 現在、
Supported platforms
Flutter ZXing supports the following platforms:
Android (minimum API level 21)
Windows (not working yet)
とあるじゃないですか!?
なぜ、もっとしっかりと README を読まなかったのか!?
他のライブラリでも、提供元のドキュメントをまずしっかりと読むことという教訓を得ていたのに
環境
- Windows 10
- Flutter 3
- Visual Studio Code
使ってみる
自分の対象環境では、まだ使えないことは確定しているが、
https://pub.dev/packages/flutter_zxing
flutter_zxing 1.7.0
pubspec.yaml
dependencies:
flutter_zxing: ^1.7.0
コード例)
ビルド失敗するので動作は不明!
こんなコードで読み込みをしたかったのですという内容
import 'dart:typed_data';
import 'package:flutter/material.dart';
import 'package:flutter/foundation.dart';
import 'package:flutter_zxing/flutter_zxing.dart';
static Future<String?> scanCodeFromFile(String path) async {
DecodeParams params = DecodeParams();
Code? resultFromPath = await zx.readBarcodeImagePathString(path, params);
print("text ${resultFromPath.text}");
print("error ${resultFromPath.error}");
print("format ${resultFromPath.format}");
print("position ${resultFromPath.position}");
print("valid ${resultFromPath.isValid}");
return resultFromPath.text;
}
まとめ
最終的に、使えない、使い方がわからない、バージョン違いでコードが全く書けないなどあらゆる障壁があるのが現在の開発環境です
それでも、提供元のドキュメントは英語でもしっかりと読むことを教訓にしていた
それでも、つい早く動かしたい気持ちがネット上のサンプルコードを貼り付けて動作させようとしてしまう
それですんなり動けば良し、躓いたら即座に教訓に立ち戻りしっかりと段階を踏むことを心掛けたい
(それも三歩歩けば忘れるのだろう)