To NFC, or To Bang Your Head Against a Wall

I hate doing cross-platform dev, especially in favor of technologies that no one will use

C4
Starting Slant

--

I’m not a fan of building cross-platform. I think a lot of the arguments for it are valid, but the final decision to do so has to be really solid. Most of the implementations I’ve seen that are cross platform suck, and for a lot of good reasons. I could go on for a long time about this opinion, but I’ll keep it short and sweet.

Designing for a specific platform is a conscious choice, one that brings with it the ability to think, design and develop properly. When you know your medium inside and out, you can work some really great magic. I’ve made my choice between iOS and Android, and I strive to stick with it a much as possible: because I understand the hardware, the software and the market. But, I will always do the leg work to make sure that my opinion is the right one.

To NFC, or Not to NFC

Earlier in the summer, I had produced an interactive installation using RFID and bluetooth for a client. After their show we had a follow-up and there were two main issues with the approach that we took:

  1. RFID was unreliable — as much as we calibrated the antennas, moving the tags around or touching them reduced their readability, and ultimately ruined the experience of the installation.
  2. The hardware system was too hard to install — We came up with the RFID implementation on the fly, under pressure, and it worked for the first pass. However, the install component was too complicated for a staff person on the floor.

The client decided that they wanted another approach taken to the system, and they suggested using NFC. I was interested to figure out whether or not this would work, but I was skeptical. So, I did some research.

The client was interested in having the experience be more seamless — which basically meant “it has to work better.” At their suggestion I looked into a bunch of different options for doing NFC on iPhones, but getting it working was a stretch for a number of different reasons, but mainly because Apple had already eschewed NFC as a solution and any real implementations were simply hacks that people had invented.

Throughout my research I looked at a:

To Bang Your Head Against A Wall

At the end of my research I sent an email to our client and suggested NOT going with any of the NFC solutions, and I backed this up with a handful of good reasoning. In an email to the client I explained:

I think the chipwave stuff is okay, but the device fidelity company is far more responsive and their tech is much more solid. I think chipwave is a reseller, and they don’t have access to the hardware’s API.

I have tested bluetooth connection to a mac mini using my phones and it’s pretty solid. Given that the WiFi was an issue at the Sapphire event I would strongly suggest using bluetooth for the wireless connection between devices and computers. The only hitch would be that the IT guys at the next event also jam random Bluetooth networks like they do with WiFi.

I would use this approach for connecting between different phones and computers in both the NFC and a Bluetooth tag solutions below.

The last bit of which is important: communication between the iPod / iPhone and the console was going to be bluetooth no matter what, so using bluetooth for both recognition and communcation would be the best option.

Three options for communicating or doing proximity

For a number of reasons this worked for me:

  1. Installation is always easier with fewer pieces of hardware
  2. Combining a native and non-native system for interaction will alway introduce more complicated problems that cannot be anticipated
  3. NFC solutions meant purchasing extra hardware at more cost
  4. This bluetooth technology was going to be big and I figured it would get a lot of attention.

The only problem with this suggestion was that the bluetooth approach was new and untested… No one had really done it before, so it was going to be a headache…

I was ready to bang my head against a wall in favor of it though.

--

--

C4
Starting Slant

Code, Creatively. An open-source API for iOS.