ZAICOでは、Android・iOS・Rubyエンジニアを絶賛募集中です! 詳しくは、採用ページをご覧ください。
はじめに
こんにちは!スナです!
今回はAndroidでGS1データバーをスキャンしようとして諦めた話をさせてください。
(書いた後に気付きましたが、あんまりエンジニア感ないですねこれ。
けどもう最後まで書いちゃったのでこのまま投稿しちゃおうと思います。
今から新しいネタで書く気力も無いし。。
コードはないけど一応ライブラリのURLとかはあるので許して!)
GS1データバーとは
本題に入る前に、そもそもGS1データバーとはなんぞや?って話ですよね。
GS1データバーはバーコードの種類の1つです。
ちょっと特殊なバーコードなので、簡単にはスキャンさせてくれないのです。(ぐぬぬ)
GS1データバーを理解するために、まず一般的なバーコードについて説明します。
スーパーとかの商品についてるやつです。
アレは正確にはJANコード(Japanese Article Number)と呼ばれてます。
JANコードもバーコードの種類の1つで、一番メジャーなやつです。
参考:事業者コード・ GTINジーティン( JANジャンコード )とは
ちなみにJANコードやGS1データバーなどのバーコードは全世界で標準化されています!
つまり日本の商品のバーコードがアメリカでも使えるのです!(すごい!)
そして標準化のために頑張ってくれている団体がGS1なのです!
参考:GS1標準と標準化活動
バーコードが標準化されていることでどれだけ世界が効率的になったか。
GS1という言葉は普段目にする機会はほぼない(私も今回初めて知りました)ですが、この機にみんなで褒めてあげよう。
・・・少し話が脱線しましたが、とにかく普段目にするバーコード(JANコード)はスキャンすることによって商品が判別できる優れものです。
JANコードの問題点
ただし、逆にいうと商品の判別しかできません!
いやいや、商品の判別ができれば十分では?と思うかもしれませんが、例えば、どの工場で作られたのか・作成日はいつなのか・有効期限はいつなのかなどが分かったらもっと嬉しいですよね!
特に嬉しいのは医療用医薬品業界です。
有効期限の切れた薬を出してしまうと命の危険すらあるので、それがバーコード でスキャンできるとすごく嬉しいわけです。
GS1アプリケーション識別子(AI)
で、この課題を解決してくれたのが GS1アプリケーション識別子(AI)です!
バーコードの中にAIを埋め込むことで、商品に加えて有効期限や作成日なども判別可能になりました!
例えば、商品コード12345、製造年月日2020年8月1日、有効期限2021年9月20日の場合は以下のようになります。
(01)12345(11)20200801(17)20210920
※分かりやすさを重視しており、正確なフォーマットとは多少異なります。
AIを使えるバーコード
そしてこのAIをバーコード内に埋め込むことができるバーコードの種類は以下の5種類です。
(JANコードには埋め込めないのだ!フォーマットが決まっちゃってるので!)
- GS1-128
- GS1データバー拡張型
- GS1データバー合成シンボル
- GS1データマトリックス
- GS1 QRコード
そしてその内、”GS1-128″と”GS1データバー合成シンボル”の2つが医療用医薬品業界で利用されています。
で、今回はこの2つのバーコードをAndroidでスキャンするために、色々と頑張った話ということです。
前置き長くてすみません。。
AndroidでGS1バーコードをスキャンしたい!
ようやく本題です!
AndroidでGS1バーコードをスキャンするためにライブラリを探してみます。
最初に見つけたのは以下のライブラリ。
https://github.com/zxing/zxing
対応バーコードにRSS-14( RSSはGS1データバーの旧称)とあるので期待して試してみましたが、残念ながらGS1データバー合成シンボルはスキャンできませんでした。。
ただし、GS1データバーにはさらに細かく分けると7種類あり、その中で最もシンプルな「GS1データバー 標準型」はスキャンできました。
参考:GS1データバーとは
惜しい。。
次に見つけたのはこれ。
https://zone0.net/jp/2017/KXABarcodeReader/
GS1データバー合成シンボルもスキャンできるらしく、おお!と思ったものの、1アプリ45万円とのことで、今回は見送り。。
最後はこちら
GoogleのML Kit
https://developers.google.com/ml-kit/vision/barcode-scanning
天下のGoogleさんのライブラリなのでいけちゃうのでは!?と期待しましたが、ダメでした。。
多分市場が小さいのでコスパ的にやらない判断にしてるんだろうな〜と思います。残念。。
他にも有料ライブラリはいくつか見つかりましたが、無料ライブラリはなさそうでした。(世の中そんなに甘く無いですね)
バーコードをスキャンするって簡単そうに見えて意外と大変だということが分かりました。。
Androidで(無料で)GS1バーコードをスキャンする方法はない
ということで現時点では無料でGS1データバーをスキャンする方法はなさそうです。
誰かライブラリ作ってくれ〜〜〜(人任せ)
おわりに
今回バーコードについて色々と調べてみて、バーコードの世界の深さにびっくりしました。
皆さんも今後お買い物する時にバーコードを見てみると面白い発見があるかも知れませんよ。
以上です。