robosats
robosats copied to clipboard
A native Android client for Robosats
Is your feature request related to a problem? Please describe. The existing Robosats Android client doesn't provide great UX.
Describe the solution you'd like By creating a new native Android client, we can have a much better UX, and hopefully increase the Robosats adoption a lot as well.
Describe alternatives you've considered I considered using Kivy or other cross-platform tech to create cross-platfrom clients. But from my experience, in order to create the BEST UX possible, you really need an app that is based on the native tech stack. For Android, that is Kotlin + Jetpack Compose.
Additional context Just made my initial PoC app public here: https://github.com/BitcoinWukong/wukong-robosats-android
Hey @BitcoinWukong this app is very promising! I actually dig learning Kotlin so I myself might want to experiment with it when I have some free time.
In the meantime, please reach out either here or on our other contact channels for any immediate help you might need during the development.
One low hanging fruit (sort of) for usefulness of this app might be private torified Android notification. This has been a veeery requested feature, and your app is more than half the way there :D ... It would however require to keep a torified service running in the background which will increase the battery usage and Android system does not really like. But I think those are compromises users will gladly take.
I will keep that in mind. I find the PGP encryption for robot private key generation and chat message encryption / decryption very challenging, and I would like to solve this problem first.
I'm almost there now, the problem is the PGP private key decryption is unacceptably slow on Android device somehow, takes more than 1 minute!!! to complete, while it only takes about 3 seconds!!! to complete in the Android emulator. (Maybe my implementation is problematic? Would love to have a second eye on it! Please feel free to review https://github.com/BitcoinWukong/wukong-robosats-android/pull/11 and see if you can find anything suspicious if you have the chance.) (Or, maybe because I've been using the Debug version, haven't tested how fast the release version would be yet. That being said, I'm also testing the Debug version in the Emulator. Anyway, we can always come back to this later.)
To fix the slowness, I'm trying to implement a serialization / deserialization for PGPPrivateKey now, so that it can load the private key directly from storage, without decrypting it every time on app launch. This should help a lot with the slowness of decrypting the Private Key using the token and the enc_priv_key.
My focus at this moment is on completing the Trade flow as much as possible, and I feel that I'm very close now. Solving the chat encryption / decryption will be a big step forward. Once that is done, I think I might be only 2 or 3 small features away from being able to complete a whole trade with this new Android app.
I'll keep the Android notification on my list. If I make good progress on implementing the trade flow, I might wait until that is done before I start working on the Android notifications.