In this blog, we’ll talk about implementing barcode scanners in your Android projects. We will cover the benefits of using barcode scanners, recommend a few of the most popular tools that are currently used on the market, and teach you how to make your own customized barcode scanner.

Uses and benefits of barcode scanners

It’s not uncommon to have a barcode scanner embedded into a mobile application since it makes uploading data into a device much faster. It has a significant role in many application features, such as: finding product details while being in a storage facility, creating a fast item order list, registering data in the logistics field, or importing VCard information of your new client.

Time saving

Just imagine how much time you save when you need to track information like inventory or expenses. There’s no more digging through old files to find necessary information, but you’re rather just a few clicks away from finding everything you need.

Better and precise data

As we already mentioned inventory and expenses, through barcode scanners it is possible to obtain data on both at the same time. Additionally, barcode scanners can be customized to contain other important data if it’s necessary.

Faster employee training

Since barcode scanners mostly require a few clicks, there’s no need for expensive training programs for new employees to get familiar with many inventory items or pricing systems.

Recommended Barcode Scanner tools

1. ZXing (Zebra Crossing)

ZXing is short for Zebra Crossing

One of the most popular core libraries for barcode scanning is ZXing, shortened from Zebra Crossing. If you’re not familiar with core libraries, they offer a set of utilities that help you with permissions, device location and connectivity within your Android project.

Its popularity is also recognized by lots of third-party core libraries that use ZXing under the hood and other programming languages like Objective-C, Swift, JavaScript, PHP, Python, C++ and Ruby.

The user’s data is encoded into QR code as a VCard. Try to scan it yourself!

How to use ZXing

To use Zxing, first you need to download their barcode scanning app. Your app would connect to their app, scan the barcode, and then return the result to you. Even though Zebra crossing resembles barcode formats, ZXing is more than that. It’s a core library written in Java with the ability to recognize one-dimensional and two-dimensional formats meaning it’s able to recognize different data structures. So not only it can recognize UPC and EAN barcode formats, but it can also scan QR code and Aztec.

Making a customized barcode scanner

We took an in-depth look at ZXing and recognized that if you want to develop your own apps you can take the core part of their Barcode Scan application and implement it in your code. It will require you to operate the camera, get images from the camera and then use ZXing as a tool of finding barcodes on images. After you are done with that the only thing that’s left is decoding it into a readable code.

This is a go-to solution when you want to have complete control over the whole barcode scanning process. You will be able to decide how the camera is used, allow users to choose an image from the gallery, or maybe allow users to edit images before the scan. If you’re not interested in the complete customization of the barcode scanning process, this is when third-party libraries come into play.

2. Third-party ZXing wrap libraries

While ZXing is really useful, it’s development process can get quite expensive. If you’re low on budget when starting out it’s sometimes better to use third-party libraries that are already developed and can be customized in the process. It makes the process of implementing barcode scanners a lot quicker.

There are many other ZXing wrapped libraries you can use and it’s recommended to try the ones you haven’t used yet. Since they do not take long to set up, you can always go back to the preferred one.

Pros & Cons of using third party wrap libraries

With ZXing wrap libraries you can usually choose between opening a completely new screen or embedding “one view” into your existing screen. They work by continuously scanning codes with a camera and sending you scanned results in a callback. Callback is a function that is passed on as an argument to other code, meaning that other code is expected to callback the argument at a given time.

One of the disadvantages of wrap libraries is that they’re preconfigured by developers, meaning there’s not much room for customization. In the end, using third party libraries will still get the job done since it’s a lot faster than creating your barcode scanner from scratch.

3. Google Barcode Scanning API

Besides ZXing libraries we also have a native solution from Google. Barcode scanning API started as part of the machine learning kit for Firebase, but recently they have decided to make the machine learning kit as a standalone.

Barcode scanning API from Google is very similar to ZXing. It can scan almost all barcode formats but fails to encode barcode. ZXing can create a barcode image by selecting a format and passing the code which makes it more superior in comparison to Google’s barcode scanning.

GIF of barcode scanning with Google Barcode Scanning API
Barcode scanning API in a showcase app

Is Google Barcode Scanning API worth it?

In comparison to ZXing, Google is definitely a good option and you can’t go wrong with it. If you want to use it, you are required to pass the image to the API which will then return the decoded message. That means you have to handle sending the image to API by yourself. Either by forwarding the image from the camera or by selecting an image file from your storage. If you are willing to create your barcode scanner from scratch and don’t need barcode encoding, we would suggest trying Google’s barcode scanning API. Mainly because native solutions are mostly much more user-friendly.

4. Bonus: Special barcode scanning device

Last, but not least, we have one bonus way of implementing a barcode scanner in the Android app, which is by using specially designed devices for logistics that have their own SDK (Software Development Kit). These devices use infrared sensors for scanning various products. For example, you can quickly scan multiple products in your storage units.

We have worked with CipherLab devices and used their SDK. It came with extensive documentation that you have to study first. But in the end, we have created an app for the CipherLab device that is used to create a better working system inside of a customer’s storage unit within a few clicks.

There are probably more ways of implementing a barcode scanner in mobile applications, but we believe these are the most effective and most popular ways. Do you have an idea for a barcode scanning app? Or maybe you would like to speed up the process of handling your products?

If you need help with developing or implementing barcode scanners, feel free to contact us to make it happen!