Cloning Arctic Monkeys Bassist Nick O'Malley's Sound
I love going to the library. Living in Orange County, we have access to dozens of local and city libraries. The Orange County Public Library system, the Irvine Public Library system, the Newport Beach libraries, City of Orange Public Libraries, and that’s to name just a few. For this reason, I have half a dozen library cards that I have to carry around (and usually forget to bring), and after the development of Ditch24GO I figured, why not make one for the libraries?
TL;DR#
Don’t wanna read the guide and just want your wallet pass? I made a small webapp that can generate an Apple Wallet pass. If you have an Android, sorry, you gotta do the work yourself (mainly ‘cause it’s easy, and doesn’t need a Developer subscription to get a signing cert).
Head over to LibraryWallet and follow the easy steps. I don’t store your data, except for the generated .pkpass, which is automatically deleted five minutes after it’s generated.
Making It Better#
First off, I want to give a well deserved thank-you to iliana etaoin and their blogpost on this exact topic. It is the source of almost all my understanding of the library barcode system and how to get the ball rolling on Apple Wallet passes.
Similar to their libraries, my libraries also use Codabar for the plastic library cards. Apple Wallet passes only natively support QR code, PDF417, Aztec Code, and Code 128.
Because Codabar is not natively supported, iliana took the approach of generating an image of the Codabar barcode and saving that image to the primary/strip image field. Yes, it works, but I couldn’t shake the desire to improve it. I had to know if I could get this working with Code 128.
Lucky (or unlucky, depending on how old you are) for us, it isn’t the 90s anymore and we aren’t using a 3M checkout terminal running Windows 3.0 that only understands Codabar. Almost any checkout terminal made in the past 20 years uses a modern barcode scanner, which, unlike its predecessors, supports many types of barcodes and simply passes the decoded value to the host system.
The barcode readers and self-service kiosks that my libraries use support Febraban Bank Code, Codabar, Code 11, Code 93, MSI, Code 128, EAN-128, Code 39, EAN-8, EAN-13, UPC-A, ISBN, Industrial 25, Interleaved 25, Standard 25, and Matrix.
After crafting a Code 128-based Apple Wallet pass with my library numbers, I visited at least one branch of each of the four library networks, and, to my delight, confirmed the digital passes worked at all of them!
LibraryWallet#
I created this webapp to easily convert my library card (and my friends’) into an Apple Wallet pass. If the components of this project were completely free, I would never have made it public, but because I have to pay Apple the $99/yr for a Developer Account (granting access to pass signing certs), I thought others might find this app useful and they could save themselves some coin.
I utilized the framework from my Ditch24GO project and just ported it over to 1D barcodes (since 24 Hour Fitness uses 2D). I tried to make it as user-friendly as I could, incorporating some of the personal design decisions I liked as user-customizable options.
Right now it will auto-detect Codabar barcodes, but you should always check whether your library accepts Code 128 barcodes. Originally I had all 1D symbologies as selectable options, but library barcodes are almost always Codabar or Code 128.
Some basic customizable options are available, allowing you to change the background, accent, text, and icon. Of course, I included four presets for the four library networks near me, with each network’s 10 closest Orange County branches saved for geolocation alerts.