ZxingObjc

TheLevelUp/ZXingObjC
ZxingObjcはCosta Walcott氏の書くZxingのObjective-c portingだ。 ※

以前に「iPhoneで使用できる1D/2Dバーコードリーダーライブラリィ」というエントリを書いたが、その時結論は書かなかったものの総論としては

「ライセンスに難があるものの、2D/1Dバーコードの両方が安定して読めて使いやすいZBarがお勧め」

だった。事実、私が書いたアプリケーションでもZBarを組み込んでいる。

しかしだ。ZXingObjcは本家ZXingをiOSで使う際の弱点をほぼ克服しており、それでいてライセンスは本家ZXing同様Apache 2.0ライセンスである。これはiOSで使えるバーコードライブラリィとしては一気に先頭に躍り出るのではないだろうか。

ちなみにこれもますいさん情報だが、リポジトリからのクローンでは駄目で、v2.0のタグから落としたZipじゃないと上手く動かないらしい。

Tags · TheLevelUp/ZXingObjC
  v2.0.zip ― TheLevelUp/ZXingObjC

また、ここから落としたソースで一部ビルドが通らない箇所がある。

ZXingObjC/ZXingObjC/oned/ ZXCode128Writer.m

const unichar ESCAPE_FNC_1 = '\u00f1';
const unichar ESCAPE_FNC_2 = '\u00f2';
const unichar ESCAPE_FNC_3 = '\u00f3';
const unichar ESCAPE_FNC_4 = '\u00f4';

全てコメントアウトしても良いがせっかくのcode128対応らしいので

const unichar ESCAPE_FNC_1 = L'\u00f1';
const unichar ESCAPE_FNC_2 = L'\u00f2';
const unichar ESCAPE_FNC_3 = L'\u00f3';
const unichar ESCAPE_FNC_4 = L'\u00f4';

と直せばエラーは消える。

なお、Max OS X Mountain Lion + XCode4.4.1 + iPhone4S(iOS5.0.1)|iPod touch(iOS5.1.1)で/exampleのサンプルアプリケーションと共に、コンパイルと動作を確認しているがQRコードは勿論のこと、本家では安定していなかった1Dバーコードもしっかり読めることを確認した。(iPod touchではAF機能がないので1Dバーコードはかなり厳しいが)

※私にこの素晴らしいライブラリィの存在を教えてくれたのは@esmasuiさんだ。 最初に上手くビルドできなかった際にも散々お世話になった。ますいさん本当にありがとう。そしてそして、なによりもZXingをObjective-Cに移植してくれたCosta Walcott氏に感謝。