Strape enables users to initiate and authorize peer-to-peer transactions without alphanumerical input by
using gestures. OK, a smart wallet app, combines authentication, marketing and payment services in a single
app. By choice, peer-to-peer payments were excluded from th
...
Strape enables users to initiate and authorize peer-to-peer transactions without alphanumerical input by
using gestures. OK, a smart wallet app, combines authentication, marketing and payment services in a single
app. By choice, peer-to-peer payments were excluded from the initial design of the OK app, because no
compelling user experience for this type of payment was available, yet. With Strape there is. To incorporate
the Strape functionality inOKand other host applications, the Strape functionality needs to be made available
as an SDK.
The goal of the project is therefore twofold: An SDK must be developed that provides the gesture-based
functionality and adheres to a number of integration use cases for various possible hosting applications. First,
it should be possible to initiate transactions by using gestures, and authorize the transactions by tapping on
a discovered user and swiping it towards them. Secondly, the SDK should be structured in such a way that it
is possible for a host application to fully integrate the SDK.
The system is implemented using a set of configurable classes with the business logic and a data provider
that handles all data mutation and persistence. Furthermore, it holds views that can be extended by a host
application for further customization. Discovery is implemented by using Bluetooth Low Energy, a protocol
that enables constant advertisement and scanning of users in proximity. To ensure testability and maintainability,
aModel-View-Presenter architecture is used.
The SDK is implemented in OK at various points in the app, namely as a favorite between payment accounts,
IDs and tickets, as a shortcut in the main overview and as an overlay with transaction objects. OK
mostly uses the standard SDK configuration variables.
The project was managed using Scrum with 1-week sprints. Version control was handled by Git and
SemVer and the project was continuously integrated by using Bitrise. Although a connection to the Strape
Virtual Account System was planned, time constraints and prioritization of the core Strape functionality resulted
in leaving it out of the final product.
The result satisfies the project goal in that an SDK is realized comprising the core Strape functionality
with the specified integration requirements. Furthermore, a first version of the SDK is integrated in the OK
app, satisfying all UI integration requirements. The project has showed us the importance of the necessary
overhead with software development projects such as this one. We recommend developing the requirements
we deemed out of scope for this project to complete the entire peer-to-peer transaction proposition.