Hello, this is my progress update… fasten your seatbelts.
Grin++ Mobile Application UI/UX.
After pivoting several UI concepts I came up to the one I would like to use. This one makes use of swipe gestures, tries to simplify actions and keep alive that punk look that we like… let’s see how.
001 - Initial screen: this is the first screen that we see
002 - Login screen: after booting up, we can login into any of our wallets (in this case Personal, Donations and Test…), create a new wallet and restore it. This behavior is also present in the Desktop application.
Also, we can use our fingerprint to login after selecting a wallet.
Create a Wallet: Username, Password, Seed length and you’re good to go.
Restore Wallet: we also can restore a wallet.
PS: I would like to, later, use an encrypted wallet seed to restore it, I don’t like that much the idea of sharing the seed in plain text.
003 - Wallet screen: after the login we see this screen, here we can appreciate our spendable and the “in progress” transactions: Receiving and Sending. If we want to see the complete history we swipe right and for receiving, we swipe left. To see the details of a transaction we just need to make click on the transaction row.
Transaction details: important information regarding the transaction.
Transactions History: Completed transactions: Received and Sent, Cancelled and Coinbase.
Receive/Finalized: We can get this screen by swiping left from the Wallet Screen. Here we could Receive and Finalize a transaction using Slatepack. Also we can Enable and Disable the NFC, the feature here is that we could use proximity to make a transaction, for now this will be only available for Grin++, after making this stable enough I could migrate this to Ironbelly.
We see here a big button with our address, if the wallet is available we will see this button in Green if not, the button will be in Orange. To share your address, you just need to make click like this:
Now, if we want to send Grins, we could swipe up from the Wallet Screen.
004 - Sending screen: from here we can scan the Address using a QR Code, set the amount and choose a Sending method.
Without Interactivity: Offline sending, this is the classical grin method using slatepack.
Using Interactivity: This means that the app will attempt to complete the transaction using Tor, if it fails the slatepack string will be shown. If the user wallet isn’t available (sender or receiver) the button will be disabled like it is in the screenshot.
Through Proximity: In the end this should be like an offline transaction but everything happens wireless (NFC), both sender and receiver should be close to each other.
If everything goes well, we should see this screen:
Grin++ backend running on Android.
Grin++ has been compiled for Android and it’s able to sync after a while, but right now it isn’t stable enough because some device memory issues. Also Tor is properly running on Android.
There is a (unstable) branch for Raspberry Pi too in Grin++ github repository which uses Docker to compile an ARM64 binary. If you know what you’re doing feel free to play a bit with it.
Final thoughts.
First, thanks to @Mokhtar for helping me out to come up with the swiping gestures based wallet screen, I’m sorry for making you and @david suffer with the earliest ugly UIs . Now, I will be open to any feedback for the UX/UI (not new features, please) while I’m working on mitigating the memory issues. The code will be released in the next progress update hopefully. At this pace we could have an APK for December. Stay tuned!