Hi, thanks for visiting!

My name's Sam Kelleher, and I am a Senior Full-Stack Web Developer / Software Architect based in London. This website mostly contains a sample of work from my portfolio, tips and best practicies for building web applications, and reviews + photos of food and hotels in London.

Go ahead and explore my site, search for something specific if you fancy. Reach out to me by any of these various means below.

Dynamic iOS Passbook with notifications

In aid of Apple's WWDC 2014 in San Francisco, it made perfect sense to socialize the with the hundreds of other attendees by using the Passbook feature on iOS as a business card to stay in touch.

Using an iPhone, any other iPhone user can use the Passbook app to scan the code presented within my own Passbook (see screenshot above). This then automatically downloads a copy of the pass containing my business card information. The system is tracking where the user scanned the code (i.e. so the system knows if they have scanned directly from me) and can then adjust the content of the pass itself. For example, a passbook I display publicly doesn't contain any sensitive information like my personal phone number or location, while if I have given out my passbook personally - then I'll assume I want them to have this information and it is included in the passbook automatically.

When a persons scans my pass, their device creates a subscription to it using the Apple Push Notification Service, this subscription is unique to each pass and device. Thus I am able to identify (anonymously) each pass subscription, and also identify when those individuals have passed on the pass to others (using the inbuilt sharing functionality inside Passbook, or letting another user scan the pass again). Then once the conference is done and finished, I am able to send specific and customized push update messages to each subscriber.

Update April 2016


Since I've moved this website to a Node based React website (from C# .NET); I haven't replaced the passbook system I had built. So the demo pass I've created no longer works until I re-add the system in Node (will make an interesting write up).

By /In Category Portfolio/Tags