Ever found yourself at a restaurant with friends, in front of a bill and letting out a small sigh at the thought of calculating away your share of the pay? We sure did, several times, actually. We thought there should be a simple method to get the bill in a more sensible form and attempted to build it.
What it does
We have build an Android application for NFC enabled devices, where you can select the items that you consumed from the bill and pay for them, all from within the application.
The bill is an NFC enabled device or a tag, playing the role of a "server". This bill goes around the table and people can individually connect tap into it, pay their share by tapping back on the NFC bill, then pass it to the next person and repeat until it converges to a £0 total amount to be paid.
How we built it
We built it using Java inside Android Studio, targeted at API: 22+, which is supposed to cover 90% Android devices.
The concept is relatively straightforward. Using Googles API reference, our project structure contains:
- An NFCActivity object which handles the transferring of the bill items
- An NFCDisplayActivity object which handles the display action of the phone
- An item object that gents converted into an NDEFRecord, encapsulated into an NDEFMessage and sent across to be handled by the receiver.
Challenges we ran into
The first overbearing challenge was actually getting accustomed to Android Studio and the API to be able to build the application. Moreover, working with NDEF (NFC Data Exchange Format) was especially challenging, as well as working with Android Beam in the absence of NFC Tags, which would have probably made the data sending a tag easier.
Accomplishments that we're proud of
We managed to connect two devices and successfully send data across to be rendered in a usable format. Building a first ever Android application was an achievement in its own and we have definitely learnt a lot.
What's next for Split-IT
There can be many improvements to this application and there is a lot of potential and need for such a product.
Firstly, we would add support for a 3rd party payment application which would enable the all payment going through the application with all the confirmation checks Secondly, we could add support for doing the same with any store, not only a restaurant, in order to split any bill between more people.
Another feature would be extending this to taking a picture of a text bill and splitting the bill like that, with the added consideration that we could require an NFC card reader in order to proceed with the payment from each individual phone after we've selected the items.