Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

A native Android client for Robosats #960

Open
BitcoinWukong opened this issue Nov 19, 2023 · 2 comments
Open

A native Android client for Robosats #960

BitcoinWukong opened this issue Nov 19, 2023 · 2 comments
Labels

Comments

@BitcoinWukong
Copy link

BitcoinWukong commented Nov 19, 2023

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

@Reckless-Satoshi
Copy link
Collaborator

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.

@BitcoinWukong
Copy link
Author

BitcoinWukong commented Nov 25, 2023

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 BitcoinWukong/wukong-robosats-android#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.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants