What are QR Codes?
A QR Code, or “Quick Response” code, is a popular type of two-dimensional barcode. 2D barcodes can hold more data in the same space as 1D barcodes because they encode data both horizontally as well as vertically. 1D barcodes (such as UPC) only encode data along the horizontal axis, in one-dimension.
According to Google, “QR Codes store up to 4,296 alphanumeric characters of arbitrary text. This text can be anything, for example URL, contact information, a telephone number, even a poem!”
Why QR Codes?
There are lots of ways to share information between devices. My favorite was IRDA ports to transfer “business cards” and “notes” between PDAs (such as Pocket PC / Windows Mobile, Newton, and Palm). These devices each used a different data format and made a 3rd party “translation app” necessary, usually on both devices. Not only that, IRDA ports fell out of vogue some time ago.
Bluetooth promised to bridge this gap, but again, different devices used different formats, and Bluetooth discoverability is usually turned off for security reasons, making transfers more difficult.
Apps like Bump address this shortcoming to allow devices to transfer data to each other over the internet when “bumped” against each other.
But all of these are device-to-device, what we need is some way to transfer not only device-to-device, but desktop/laptop-to-device, magazine-to-device, sign-to-device, TV-to-device, etc. That’s where barcodes come in to play.
If you’ve been living in a cave, barcodes are a graphical mechanism used to encode data in a picture, usually consisting of black and while lines or stripes. These types of barcodes can’t hold very much data, and are prone to error especially when the code is damaged or missing.
To encode more data (and allow for higher levels of error correction) 2D barcodes were needed. There are many different formats, but this article is about QR Codes because of their ease of use and relative ubiquity.
What can I put in a QR Code? How do I use them?
As previously mentioned, anything text up to 4,296 characters can “fit” in a QR Code. Plain text can be put in a QR Code, like this one that contains “Hello World”. Text isn’t all that helpful for more than messages or slogans (“Drink more Ovaltine” comes to mind). Where QR Codes become truly useful is with semantic markup.
Imagine being able to markup and encode a phone number that, when scanned, shows the user the phone number and lets you dial your phone with the push of one button.
How about an SMS; let’s say you want to vote for a candidate on American Idol, scan a QR Code, and tap one button to send the SMS.
Say you opened a new sandwich shop, but no one knows where it is, make a code that when scanned will show your geolocation and allow the phone to navigate to your store via GPS.
And probably the coolest use is the vCard. Print a code on your business card (or display it on the screen of your phone) so someone can scan and import all your contact information into their device just by scanning it with the camera in their phone/PDA. Awesome.
Where can I see QR Codes in action?
If you’d like to see how to use your smartphone to read QR codes, check out my video over on pocketnow.com.
How can I make my own QR Codes?
For those of you who are familiar with the Google Charts API, the QR syntax should be fairly simple for you to grasp and implement.
For those of you who just want a simple explanation, here are some examples:
- Plain Text: http://chart.apis.google.com/chart?chs=150×150&cht=qr&choe=UTF-8&chld=M|1&chl=Hello+world
- Phone number: http://chart.apis.google.com/chart?chs=150×150&cht=qr&choe=UTF-8&chld=M|1&chl=tel:+18004664411
- SMS: http://chart.apis.google.com/chart?chs=150×150&cht=qr&choe=UTF-8&chld=M|1&chl=sms:18004004411
- Web page: http://chart.apis.google.com/chart?cht=qr&chs=150×150&choe=UTF-8&chld=M|1&chl=http://www.joelevi.com/blog/index.php/2010/05/22/how-to-use-the-google-chart-api-to-make-your-own-qr-codes/
- App in the Android Market: http://chart.apis.google.com/chart?chs=150×150&cht=qr&choe=UTF-8&chld=M|1&chl=market://search?q=pname:com.google.zxing.client.android
- Email: http://chart.apis.google.com/chart?cht=qr&chs=150×150&choe=UTF-8&chld=M|1&chl=mailto:firstname.lastname@example.org
- Geolocation: http://chart.apis.google.com/chart?chs=150×150&cht=qr&choe=UTF-8&chld=M|1&chl=geo:40.71872,-73.98905,100
- Contact Information: See my video for an example