...
Inbox | | The Inbox screen is where the user can view and send messages from other users. |
Contacts |
| The Contacts screen is where users can browse and edit the users to whom they expect to communicate securely with. |
My Identity |
| 'My Identity' is a simple screen that shows the user's profile data, and a large 2d barcode that can be used to physically share their encryption key with another user of the application. |
Settings |
| This is a basic settings screen with gives a place for the user to modify application settings. This is designed much like any typical settings screen, and as of now only allows the user to edit their password. |
Implementation
Our application was built as an Android application. It leverages a SQLite database to manage all contact information, messages, etc.
We used standard toolkit for much of the UI components.
We created custom colored images to represent different ideas throughout our interface. This was done with freely available images which were then colored, scaled and composed to give the desired resources.
Individual tabs in the UI were defined as separate Activities, which helped allow the team subdivide tasks across each of screens. This is a robust part of Android and so is very responsive and usable.
Open Source packages were found and integrated for the barcode reader and QR code generator. This package also deals with ensuring the user can get access to a barcode reader if they do not already have one. This ensure setup of the additional dependencies is as easy as possible for the user.
The backend server handles handles all the routing of messages between clients. Android devices will be able to communicate directly with each other without any setup besides adding someone as a contact. This simplifies the setup and use for the end user. This was intentionally designed such that the server could be untrusted. Therefore, there is no authentication; all verification is done through encryption. The underlying protocol is HTTP. was intentionally designed such that the server could
be untrusted. Therefore, there is no authentication; all verification is done
through encryption. The underlying protocol is HTTP.
We used standard toolkit for much of the UI components, such as.....
Individual tabs in the UI were defined as separate Activities, which helped allow the team subdivide tasks across each of screens.
Open Source packages were found and integrated for the barcode reader, numerous icons....
Evaluation
Three user tests were performed in order to investigate the effectiveness of our interface. One developer acted as both facilitator and observer for each test. We located users who we thought we be good targets for the application -- users who were interested in securely communicating with others, but not necessarily those who understood the technicalities of encrypted communication. One user test was performed using the application running on an Android phone, while the others we performed using the Android emulator.
...