Introduction

I’ve recently been working on an IOTA Ecosystem - Proof of Concept project called TaPs. This blog post aims to explain a little bit more about the project, its purpose and the key learning point from this exercise.

What is it?

TaPs is an iOS application written in Swift that demonstrates a simple and frictionless way to tip and pay people around you by using the ease of Bluetooth to share limited information: Avatar, Avatar Name, Payment Address and the power of IOTA to provide: fast, secure and feeless transactions.

Why create it?

TaPs is firstly and foremost a research project. I’ve no expectation, and probably not the time or money (for security audits etc.), to release this as a full production application on the App Store. Its purpose was to give me a hands-on way of getting to grips with the IOTA protocol APIs. Personally, I find the best way to truly understand a technology is to get your hands dirty and actually try to do something with it.

Does it work?

Surprisingly, despite my dubious coding skills, it is a fully functioning application. It has undergone the Apple’s Beta App Review process for TestFlight and been approved and is currently being alpha tested by a small group of associates. If it continues to perform well then I hope to open it up to a wider group of alpha testers in the near future and then possibly a Beta Test phase. Further information on these test phases will be posted in Discord and on the project’s Ecosystem web page in due course.

Why Beta Test but not Production release?

While, in the future, frictionless tips and payments may well be a valid use case for IOTA - we are just not there yet! When we are, then I think this type of functionality would be far better integrated into the existing Trinity wallet.

There is also the fact that it relies on the IOTA which itself is still very much still a Beta product. So I doubt Apple would accept it on to the App Store at the moment anyway, in the same way that Trinity is still only available through TestFlight currently.

Could it do more?

The most obvious enhancement to the functionality is the concept of going beyond personal device to personal device interactions, i.e. My iPhone to your iPhone, and to introduce functionality that would allow for interaction between a personal device and a completely autonomous device. e.g. between an iPhone and a Vending Machine, Jukebox, Parking Meter etc.

What’s been the biggest learning?

Getting to grips with the IOTA protocol APIs turned out to be remarkably easy! What has proved much harder has been thinking through and coding for the ‘social interaction’ between two internet devices. What I mean by this is utilising the Bluetooth protocol to recognise the existence of another device and then to handle the conversation between those two devices seamlessly, despite all of the many things that can, and do, go wrong.

In a future of Smart Cities filled with mobile, autonomous IOT devices, managing these social interactions between devices is going to be a key challenge and one I plan to explore in more detail in a subsequent article.

Many thanks for taking the time to read this post.

Also many thanks to Pasquale Ambrosini for IotaKit. A Swift implementation of the IOTA API library: https://github.com/pascalbros/IotaKit

Adrian Marks

https://ecosystem.iota.org/projects/taps-tips-and-payments

Donations to my projects are most welcome:

ZLGCDQKCDGWDULFE9HOBR9RHPBNCSQPPYQXTVGNLOOGM9XEGTHSDMEBAZCDYAQLAIRVUBGJICJDBV9BHWCAOMYJOMZ