Wiki for Coding QR Code Mobile Apps


Windows 8 Lenses Apps


As an IOS Developer I find the Windows 8 architecture as refeshingly different. For QR Code Scanning apps – it will be best to register your app as a Lenses App which gets invoked if you open the camera and your app is open or through the camera options. To date Windows 8 3rd party lenses are strikingly bare having said that, one of the native “Lenses” app decodes QRCodes but I find that the parsing routines can be improved.

QR Code scanning and the Mobile Phone Camera:Edit

Preface: QR Code versions & sizes:

In barcode lingo a QR Code v 40 has the dimensions of 177 x 177 modules while a QR Code v 10 has 57 x 57 modules.  In terms of scanning the barcode, current logic requires the module to be at least 3 pixels to scan properly. For a 2D Qbarcode such as the QR Code this means a minimum size of 3×3 pixels per module. Given that a QR Code v 40 has 177x 177 modules it roughly translates to a minimum dimension of 522 x 522 pixels, given the requirement for white space and factors such as angle of shot, lighting etc. the minimum scan dimension for a v 40 will easily reach 600 x 600 and up.

The other issue:  Most of the SDKs were coded a few years ago, the default video settings for the camera were set to 480P or VGA. This can be remedied through parameter settings – put it at its highest (1080P), but it needs to be done to scan QR Code v 40 properly.

Scanning from a distanceEdit

Up the electric post

1. Use a higher resolution camera (or swap your old phone with a new one) but make sure that your scanner app can actually make use of the higher resolution.

3. If your scanner has manual controls, try that, also try to zoom. Note that smartphones only have digital zoom and at a certain level, when pixelations starts, the image becomes unusable.   (Note also that manual controls is sort of a hit and miss process particularly for those SDK that build in QR Code recognition). The reason I put in this entry is because the max resolution from video feeds is significantly smaller than the max resolution of images from manual shots in a lot of camera. Iphone 4S for example has an 8 MPxl camera vs a 1080 P video feed.     

5. The metrics that work for me: If I will not be able to personally check all the QR Codes to be deployed , I will ask the person on site to take a video of the site using his phone camera with some item of known size like a 1 meter drum,   this should be a good starting point in planning my QR Code poster (or a basis to decide not to put up the QR Code after all.Read on -> .

Notes:  As far as posters are concerned most who post posters aspire for readability – that words read from a distance are readable by the human eye. It is important to realize that the phone camera is vastly inferior to the human eye. If our eye is a camera  it will at least have a 576 Mega Pixels sensor and a telescopic lens that range from wide angle to telephoto. Using our eyes to get an approximate feel of scannability over a distance will fail if you do not realize this.  In fact since people bring their phones with cameras all the time it is a simple matter to use the video – Ask the person to take a phone camera video of the place where the poster will be setup – then you should know (based on the required percentage of the QR Code image vs. the view finder) how big a QR Code you should be setting up. 

Error Correction and QR Code art workEdit

EC Levels

Anyway, because of this capability, some smart people found out that you can get away with defacing some parts of the barcode to make it artistic. ? To the best of my knowledge the process to do so is hit and miss – or you modify the barcode incrementally until you achive what you want or it cannot be decoded anymore. A starting point though is the wikipedia page of QR Code? which explains the various parts of the barcode image. Videos of incorporating logos, colorizing, and making QR Code artwork are available in Youtube (How to put a logo inside a QRCode) .  The general tools of the trade is adobe photoshop and similar tools, the QRCode error correction need to be set up high (as per video – Q works better than H because of less clutter),The process is actually putting the logo/ art layer on top of the QR Codes and testing if it still works. If you are an average MAC user free tools are Preview and Skitch which can do the job as well. 

1. comes with designer QR Codes and dynamic QR Codes to track for free

3. QRArtist Apps have also been developed to do this one of them (maybe the only one at time of publication are QRU for the iPhone and QRU/HD for the iPad). 

Mobile Usage SectionEdit

Mobile Usage sections are for QR Code content standards that are available with current apps. Developers may add their app to the Apps that support the URI Section, they may also add new sections. The update are valid so long as an existing app actually support the standard and perform the action as indicated.

Making Phone CallsEdit

The standard URI for phone calls is TEL: number – where the valid characters should be the all numeric characters and the + sign. using the + sign indicates that it uses a country code.?


A secondary format would be to use the prefix PHONETO:


Apps that support the URI

QRU and QRU Mini IOS Apps


[[UIApplicationsharedApplication] openURL: [NSURLURLWithString:urlString]];


Windows 8 Mobile

Sending an SMSEdit

There are a couple of standards and variations vailable for SMS. These are:

2. SMSTO:99999999;subject:xxxxxxxxxxxxxx;text:xxxxxxxxxxxxxxxxxxxxxx;

Meaning of Fields: 1. SMS: or SMSTO: instructs the parser that the next series of number will be the phone number for the SMS.

2. subject: or SUBJECT: instructs the phone that the following characters will be part of the subject field for the SMS. This field is optional!

For these formats, Parsing typically requires a delimiter and a defacto delimiter is the “;” (semi colon) character.

Most ZXing SDK based apps that implement the included parsing logic.

Coding Tips:

If you need to code the subject and body you need to use the IOS MFMessageComposeViewController rather than just invoking a browser using an SMS uri.

please add

Windows 8 has a native decoder the URI format it is able to detect is being investigated.

Drafting EmailEdit

The defacto standard for email is

The QR Code creates a draft message with the appropriate email address/ addresses and subject, it is particularly useful for technical support services.

Most ZXing SDK based apps that implement the included parsing logic.

Coding Tips:

If you need to code the subject and body you need to use the IOS MFMailComposeViewController rather than just invoking a browser using an email uri.

please add

Windows 8 has a native decoder the URI format it is able to detect is being investigated.

Giving map directionsEdit

The format is as follows:

1. geo:longitude,latitude,altitude


Both of these format actually invokes the native map application to give the user driving, transit or walking directions from the person’s current location to the location specified. For Android it invokes google maps, for IOS, it may invoke the native Core location services or code a google map or any of the Nokia Here web based interfaces, pending the announced development and release of an actual Nokia Here IOS SDK.

Most ZXing SDK based apps that implement the included parsing logic.

Coding Tips:

Apple Maps

Core location gets the data from  Assisrted GPS or if you have the later version of iPhone GLONASS , the russian equivalent of american GPS

see the link for more details, to use see discussion on google maps below:

In IOS 5 and below the short cut for reverse geocoding is using Google Maps URI as follows:

location.latitude, location.longitude,

location_x.coordinate.latitude, location_x.coordinate.longitude];} //@”,%f&daddr=%f,%f&t=h&z=18

[[UIApplicationsharedApplication] openURL: [NSURLURLWithString: url]];

In IOS 6 The Google maps app for IOS came out, to interface with the google maps app for IOS a new set of URIs  was published  starting with the prefix .. “comgooglemaps://?”

Note – With IOS 6 and the subsequent junking of Google maps as a Native app, the interface has changed drastically though the uri “”remain valid.

Similar to Core Location from apple, Google has its own Google maps SDK with its own set of URIs, there are a number of subsystem inside making very complex map applications possible. The SDK has versions for Javascript, Android, IOS, Web services and a few levels more. The SDK requires an API Key and a fee is levied for paid apps and free for free apps. Note though that the use of uri’s – comgooglemaps or do not require the use of an API key.    

Nokia Maps 

You may use Nokia Maps in your IOS apps through any of the web based Nokia Here APIs – (Java Script, Restful, and HTML5). In a conference Nokia did say that they will have an IOS SDK soon (not yet in the web site) , and an Andoid SDK very soon. Existing native SDKs are available for Windows Phone, Java and qt (a programming language used for Nokia Symbian OS and N9).

General Note for using Restful Services:

You will need to plug in a Restful client SDK but it will should with any Restful web services enabled sites (incluiding Nokia’s and LinkedIn) I know of at least 2:




November 2012 Apple vs. Google vs Nokia

Basic Location and Driving Maps:

Speaking only for the local maps in SIngapore, Apple’s mapkit is a few months old compared to google whose satellite view seems to be a mix between old and new and Nokia Here which is clearly using maps outdated by at least 5 years (I live in a place where they have reclaimed and the beach area the beach area and put a dam. (Punggol, Singapore), The dam (Sungei Serangoon) can be clearly seen in Google and Apple’s maps but not with Nokia Here (both in the website and the downloaded app), Of course all these changes over night so just keep posted, the area is being developed even know so the apple and google maps are at least a few months old and needs to be changed soon. This is surprising because Nokia Drive is in use in 80% of the car based GPS systems including those used in Singapore.

Transit Maps

Google and Nokia both have Public Transit directions that apple does not have.

Street View

Google only although ? Nokia? has just completed acquisition of Earthmine a ? 3D Street Level technology company ? and is probably on the verge? of having one.

Apple and Nokia


From the little that I know Android programmers should be able to use Google Maps easily. The other option is Nokia Here via the web based APIs and the up and coming native Android SDK. Nokia has a Java SDK – Not sure if anybody has tried to port it to android and why Nokia is coming out with an SDK specifically for the platform.

Windows 8 has a native decoder (one of the Lenses App) I have not really looked into the parser but have seen it open a web site. I suspect that geo location and Address URIs are supported. Please note though that Nokia has a powerful map (Nokia Here) and Drive Application, accordingly 80% of the commercial car GPS systems actually use Nokia Maps. It should be studied if there are ways to extend the URI to utilize the Nokia apps better.

Bulletin Boards, Refrigerator Doors & Reminders / Local Notifications (with corresponding Alarm)Edit

The format is as follows:

Reminder / Local Notification

REMINDER:Dinner date with Maria;Date:2012/12/31;Time:18:30;Text:Remember to buy flowers;

QRU and QRU Mini IOS Apps

Coding Tips:



Windows Mobile

Setting a Calendar Event Edit

An iCalendar standard format was filed with the IETF to set an interchange format among the different calendar application.

Apps that support the URI

QRU and QRU Mini IOS Apps



Windows Mobile

Contact Information and Business CardsEdit

Business card

The defacto standard is the VCard format, chances are, if you use the native facility of your phone and decide to share a contact, it will create a Vcard for you in the.vcf file format and ask you if you want it emailed or SMS.

Leave a Reply

Your email address will not be published. Required fields are marked *