in Libraries/Info Sci, Mobile, Tech, UNC

Barcode scanning: Closing the app gap

I still think a lot (some might say too much) about what libraries’ mobile presence should be like. I’m still mostly happy with the decision to make a webapp instead of an app, but every once in a while I want to do something a webapp can’t. Barcode search has always been at the top of that list. We’ve got all that ISBN data in the catalog, and every book in a bookstore has an ISBN barcode. Matching those two things up would be pretty convenient. Why spend money on a book if it sits in the stacks above my head every day already, right? It’s also a feature that’s definitively mobile – it doesn’t really make any sense to search via barcode scan on a desktop browser. The best use case for catalog search via barcode scan is when I’m out and about in a bookstore, not sitting at my desk.

But webapps can’t access a phone’s camera. And no camera means no barcode scanning.

Both Android and iPhone have a number of barcode scanning apps available – including Zxing and RedLaser, respectively. Thankfully developers of both included ways to invoke those scanners from a webpage! More info on how to do this is here and here. It’s not too difficult – the only technical skill involved is understanding how to build catalog search URL.

Earlier this month we built barcode scan searches into our mobile catalog. It only works on Android and iPhone devices, and requires that Zxing or RedLaser is installed first. So it’s not a seamless experience and requires some explanation to users. I’m still working out those kinks, but was both comfortable with and excited enough about this feature to push it out with a beta label. It’s live on our mobile site at www.lib.unc.edu/m

Webapps still can’t do everything, but with a little creativity the functionality gaps close up a bit. I can’t tell you how happy I am that I was able to add barcode search to the site with a simple link instead of learning to code in Objective C 🙂

Here’s a video of barcode search in action on Android: