Nowadays the QRCode are still used in many mobile applications, and iOS applications are no exception to the rule.
In a previous post I already talked about ZXing which is a popular QRCode reader for iOS. Unfortunately since iOS6 I have some trouble with this library regarding the display orientation of its controller. That’s why I searched for (I have found it since then) a more convenient reader which fits perfectly to my needs namely ZBar.
In this post I’m going to explain you briefly why I decided to use ZBar instead of ZXing, and to finish I’ll show you a code comparison between these 2 readers.
Why I Gave Up ZXing?
Before to start, I just want to highlight that ZXing is a nice reader which make his job very well. However It is not very easy to use for beginners (see my tutorial for its installation) and it has been design to work only into the portrait orientation (at least for iOS).
My applications are often designed to be used only into the landscape orientation (for the iPad apps). Until iOS5, even if ZXing didn’t display its controller into the landscape mode, the controller (which display the video) allowed me to scan the QRCode correctly. Now with iOS6 and its new orientation API, the ZXing controller does not display the video and its overlay correctly in this mode and after some searches and tests I didn’t find any solution to fix the problem easily.
Another disadvantage of ZXing is that you need to put your files as Objective-C++ (.mm) and it is very boring because it does not allow you to refactor/maintain your code easily.
These two reasons have led me to change for ZBar, and now we are going to see some code snippets which make the comparison between ZXing and ZBar.
ZXing vs ZBar
In this section I’m going to show you 2 examples: one which use the ZXing the library and the other which use the ZBar reader.
Code for ZXing
Here an object which use the ZXing library:
Code for ZBar
Here the ZBar code snippet:
As you can see, there is no big difference between ZXing and ZBar in their use. Concerning the installation you can take a look at the installation guide, and you’ll see that it is easier to install than ZXing.
To conclude I think than ZBar is a good alternative to ZXing. It is easy to install, it is easy to use and it works perfectly for all of the device orientations. In my point of view if you have any problem with ZXing you should take a look to ZBar.