[ ] The Federated client is kind of ready, but there are still some bugs so user experience is not smooth. It needs testing, QA and bug fixing. The current work is in branch the-federation-layer-v0.5.0 and: we should refrain ourselves to add any new feature or work into main :D Let's directly build anything new on the federated client from now on.
[ ] The federated client needs to be rebased over main once it has the new F2F feature. The F2F might need some fixes as it possibly conflicts with the federated client. There is possibly linting issues introduced with the F2F feature (current the-federation-layer-v0.5.0 branch is free of linting errors, and we should strive to keep it lint-error-free)
[ ] Fix Federated client Android APP. The federation-layer branch introduced a lot of changes, there are some issues that make the Android app crash. These have not been investigated yet, possibly very easy fix.
We have built a Rust module that can be compiled into a WASM and into a native library from Android. The WASM works amazingly well. It's just 1.1 MB and it can generate any robot and any nickname. This is great as now Robot identity generated is completely decentralized. The add-robo-identities-wasm branch introduces new functionalities to generate in parallel all robot avatars for the order book and cache them into an array: woah, it works amazingly well! The NPM package for the new module can be created using https://github.com/reckless-satoshi/robo-identities
[x] The only issue left to get this feature out is to make it run in Android. The WASM/Webworker does not work on the Android app. Therefore, it has to be compiled into a native library and be called from Java. I was playing around and learning how build the Rust modul and integrate them into our React-Native app. The branch with my tests is https://github.com/RoboSats/robosats/tree/add-android-rust . This created several librust_module.so under /mobile/android/app/src/main/jniLibs/ARCHITECTURE/librust_module.so (4 of them, one per architecture). I do not exactly recall the steps I took, but it required installing the rust targets for the different architectures, for example rustup target add rustup target add x86_64-linux-android for x86_64, or rustup target add aarch64-linux-android for arm64. Then a simple ./gradlew assembleRelease was capable of also compiling the Rust modules and placing them in the right directory. I never managed to call these modules from Java / React-Native / Webview component.
Improve Android app notifications and torification (medium-priority)
[ ] @Shyfire131 https://github.com/RoboSats/robosats/pull/807 started to work to achieve a more stable torification. This seemed to be a requisite to achieve Torified notifications for Order status updates in the Android app. Shyfire131 also researched and partly implemented the notification scheme as well.
Finalize RoboSats PRO MVP (low-priority)
[ ] Our current 127.0.0.1:8000/pro frontend is still half baked. This is a fun, creative and relaxed task. Basically a couple widgets are still missing, including a fully featured RobotGarage widget and a port of our OrderDetails and TradeBox components. We can also add some functionalities to the new ToolBar. With that, we will have our MVP RoboSats PRO client ready! The amount of overlap with RoboSats Basic is huge, so a lot of components can be directly re-utilized and maintance of both clients should be very easy in the future. For the last year, every new component to RoboSats Basic as been redesigned to have an API suitable for their use within the PRO client.
Finalize Federated Frontend (High-priority)
the-federation-layer-v0.5.0
and: we should refrain ourselves to add any new feature or work intomain
:D Let's directly build anything new on the federated client from now on.Finalize client-side identity generator (medium-priority)
We have built a Rust module that can be compiled into a WASM and into a native library from Android. The WASM works amazingly well. It's just 1.1 MB and it can generate any robot and any nickname. This is great as now Robot identity generated is completely decentralized. The
add-robo-identities-wasm
branch introduces new functionalities to generate in parallel all robot avatars for the order book and cache them into an array: woah, it works amazingly well! The NPM package for the new module can be created using https://github.com/reckless-satoshi/robo-identitieslibrust_module.so
under/mobile/android/app/src/main/jniLibs/ARCHITECTURE/librust_module.so
(4 of them, one per architecture). I do not exactly recall the steps I took, but it required installing the rust targets for the different architectures, for examplerustup target add rustup target add x86_64-linux-android
for x86_64, orrustup target add aarch64-linux-android
for arm64. Then a simple./gradlew assembleRelease
was capable of also compiling the Rust modules and placing them in the right directory. I never managed to call these modules from Java / React-Native / Webview component.Improve Android app notifications and torification (medium-priority)
Finalize RoboSats PRO MVP (low-priority)
127.0.0.1:8000/pro
frontend is still half baked. This is a fun, creative and relaxed task. Basically a couple widgets are still missing, including a fully featured RobotGarage widget and a port of our OrderDetails and TradeBox components. We can also add some functionalities to the new ToolBar. With that, we will have our MVP RoboSats PRO client ready! The amount of overlap with RoboSats Basic is huge, so a lot of components can be directly re-utilized and maintance of both clients should be very easy in the future. For the last year, every new component to RoboSats Basic as been redesigned to have an API suitable for their use within the PRO client.