🤳

バーコードリーダー実装に使えるライブラリを比べてみた

に公開

背景

バーコードスキャン機能付きのアプリの開発に興味を持ち、色々と調べていました。私は本を読むのが好きで、読んだ本を簡単に管理できるアプリがあればなぁと思って試しに簡単なアプリを作ってみました。

今まで考えたことがなかったのですが、バーコードスキャンを使う場面はたくさんあると気づきました。

  • 在庫管理
  • モバイル決済
  • チケット認証
  • レジでの買い物
  • 棚卸し作業

などなど、バーコード/QR コードの読み取りはいろんな業務で便利ですね。

そう思ってから、巷のバーコードスキャンライブラリにどんな種類があるのか、比較検討するための調査をしてみました。

この記事では、

  • どのバーコードスキャンライブラリを選べば良いのかわからない
  • iOS/Android/Web すべてを同じ SDK でまかないたい
  • 商用利用に安心なライブラリが何なのかわからない

といった疑問を解決します。

ライブラリ選定時に押さえるべきポイントを挙げて、主要ライブラリを比較し、最後に私のバーコードスキャン機能の実装体験記をご紹介します。今回の記事では開発手順には触れません。


バーコードスキャンライブラリ選定のポイント

  1. 対応バーコード形式 が十分か(QR, EAN, UPC, PDF417 …)
  2. スキャン速度・精度 は要件を満たすか
  3. クロスプラットフォーム対応 (iOS, Android, Web, デスクトップ等)
  4. ドキュメントとサポート の充実度
  5. コストとライセンス (OSS/Proprietary、商用利用可否)

「社内端末で動かない」「商用ライセンス料が想定外だった」
というようなトラブル防止のためにしっかりと見極めたい内容です。

表にするとこんな感じ↓

観点 チェック内容
対応バーコード 必要な一次元/二次元コードを網羅しているか
スキャン性能 フレームレート、読み取り距離、難読コードへの強さ
プラットフォーム 目的 OS/ブラウザ/組込み環境を公式にサポートしているか
導入容易性 API ドキュメント・サンプル・パッケージマネージャ対応
コスト/ライセンス OSS か、有償なら料金体系・商用可否・再配布制限

主要バーコードスキャンライブラリの比較

ライブラリ 対応バーコード スキャン速度 クロスプラットフォーム コスト 主な特徴 ライセンス/商用利用
ZXing (Zebra Crossing) UPC-A/E, EAN-8/13, Code 39/93/128, ITF, Codabar, QR, Data Matrix, PDF417, Aztec 他 高速(リアルタイム) Java, Android, JS, C++, .NET, Dart など 無料 生成機能あり、軽量、OSS Apache 2.0 — 商用可
ZBar EAN-13/8, UPC-A/E, Code 128, 39, ITF, Codabar, QR 高速(低スペックでも動作) Windows, Linux, iOS, 組込み 無料 C 製コアで超軽量 LGPL 2.1 — 商用可※
Dynamsoft Barcode Reader 1D/2D フル (QR, Data Matrix, PDF417, MaxiCode 等) 非常に高速(例: 500+ スキャン/分) iOS, Android, Web(JS), Windows, Linux, .NET, Python 他 有料(端末/ユーザ単位) 高精度、難読コード対応、ISO 27001 Proprietary — 有料必須
Scandit UPC/EAN, Code 39/128, QR, Data Matrix, PDF417 他 超高速(複数同時・2.4 m 距離) iOS, Android, Web, Windows, Linux 有料(機能・ボリューム別見積) AR 機能, Smart Data Capture Proprietary — 有料必須
ML Kit (Google) Codabar, Code 39/93/128, EAN-8/13, ITF, UPC-A/E, QR, Aztec, PDF417, Data Matrix 高速(最大10個同時) Android, iOS, Flutter オンデバイス無料※ 構造化データ解析、既存 ML モデル Google 利用規約
Vision Framework (Apple) UPC/EAN, Code 39/128, QR, PDF417, Aztec 他 高速(デバイス内でリアルタイム処理) iOS, macOS, tvOS 無料 (OS に同梱) ARKit/CoreML 連携、プライバシー重視 Apple Developer Program
STRICH Code 128, EAN, UPC, Code 39/93, ITF, QR, Data Matrix, Aztec, PDF417 他 高速(良好・劣化バーコード両対応) Web (Chrome, Safari, Firefox, PWA) 有料(月額 \$99〜) WebAssembly/WebGL, 内蔵 UI, 簡単統合 Proprietary — サブスク

※ LGPL の場合はアプリを静的リンクする際などに条件あり。
※ ML Kit はクラウド API 使用時に従量課金。


バーコードスキャンライブラリを使った私の開発体験

書籍のバーコードをスキャンしたら、書籍の情報を得られるという簡単なWebアプリを試しに作ってみました。バーコードスキャンライブラリを自分のアプリに組み込むという練習をすることが目的だったので、実用性はない単純すぎる作りになっています。どんな感じになったか、よろしければご覧ください。(具体的な開発手順については別記事でご紹介できればと思います。)

試しに作ったアプリはこんな感じ↓

ご覧の通りバーコードをスキャンすると以下の情報をとってこれます。

  • ISBN
  • Title / 書籍名
  • Author / 著者
  • Publish Year / 出版年

スキャンしてみると↓

※Open Library( https://openlibrary.org/subjects/api )に登録されている書籍のみ、情報の取得が可能な作りになっています。

STRICHを使ってみた

書籍管理アプリの試作品はSTRICHのバーコードスキャンアプリを使用しました。
"barcode scan library"のSEO結果1位のサービスです(2025年4月時点)。

前述の表に記載の通り、性能が良いことと、バーコードリーダーのUIも含まれていてすぐ実装できる点に魅力を感じて、選定しました(30日間の無料トライアルあり)。そしたら1日で簡単なアプリが出来上がりました。すっごく簡単で、短~いコードで実装できたので、別の記事で詳しい実装手順もご紹介できればと思っています!

Discussion