The user should be informed whether transaction was broadcasted successfully or didn't go through. Currently the user doesn't know anything, unless they go back to the home screen and sync and see the balance reduced or increased.
The button to generate new address in ReceiveScreen doesn't actually generate new addresses, it's just generating the last unused address . Upon launch the lastUnusedAddress is generated, so it would be better if the button generated new.
After successfully broadcasting new transaction, the user is routed to HomeScreen, but the transactions inside Pending box aren't refreshed. Not even after wallet synchronization
User needs to change screen (for ex. go to receive) and come back and only after that the Pending transactions inside the box are displayed.
Correct behaviour
They should be displayed immediately after coming from successfull broadcast or atleast after wallet sync.
Currently when user wants to navigate between Home, Send, Receive screens they need to route to them and it needs to launch them.
Better approach would be to make them into a page switcher, with Home in the middle and Send & Receive on the sides. User would then swipe between them.
This would also help with delays when launching a screen and it needs something to generate like a new address.
When a user attempts to send an amount less than is too small, the transaction does not go through and no warning is displayed to the user.
Expected behavior
The app should detect when the user is trying to send an amount too small and display a warning message to the user, informing them of the minimum amount allowed for a transaction.
Change how each transaction is displayed in the transaction history, depending on whether it is received or sent, so that the user can easily distinguish between them.
The send screen should contain a Send all button, that enters the value of the whole wallet balance into the amount input field. It also need to manage sending balance minus the transaction fee, not the whole balance.
When transaction is broadcasted, it starts syncing wallet, this takes some time and then finally when it's routed to HomeScreen the OS says "app is not responding"
In transaction sending screen, there should be low / medium / high prirotity fee, to help user choose the right fee rate according to the urgency of transaction confirmation.
When trying to scan a qr code with a bitcoin address, not every time it is correctly inserted into recipient address input field, but instead the user is redirected to home wallet screen or even white screen ( ? ).
When a user attempts to send an amount greater than their balance minus the transaction fee, the app crashes.
Expected behavior
The app should prevent the user from sending an amount greater than their balance minus the transaction fee and display an warning message instead of crashing.
The ViewModel should be in separate file that would contain everything that other screens would need and they would import it (or rather pass as an argument).
This would help with code readability and other stuff that currently are problematic to do, because of internal viewmodels.