Unifying the desktop and mobile repos plus more

John’s explanation makes a lot of sense to me. Unifying the two Flutter codebases is almost mandatory to properly leverage the cross platform benefits of the framework.

It’s a lot of code. I know because I learned how to properly touch type using the syrius codebase :joy:. There’s definitely some Bloc used already, but I’m guessing it can be expanded to cover more parts of the syrius logic.

I look forward to the SIG discussions, and being able to contribute, even if it’s just a locale translation early on!

3 Likes

It would be very helpful to have things seperated into smaller projects where it makes sense to do that.

Thank you for the contributions

1 Like

Hello!

Here is a technical sheet with what I want to do for the repo unification part:

  • refactor the code according to the bloc architecture - Architecture | Bloc
  • use cleaner Material UI elements, like in the mobile app, to make the code more maintainable - the design will, largely, be unmodified
  • integrate the mobile codebase with the desktop codebase
  • enable EVM and BTC support for desktop app
  • bring more safety features into the desktop app (secure storage and local authentication, for a start)
  • replace Hive library with drift, as Hive was replaced by Isar, but Isar itself had it’s last update 17 months ago
  • replace walletconnect_flutter_v2 with reown_walletkit, because the former has been discontinued
  • audit the current packages that we use: those that are not constantly updated should be replaced by other ones, or check if they can be replaced by features from the Flutter SDK
  • create flavors for apps (prod, test, dev) so that when testing the app, you can skip, for example, the unlocking of your wallet
  • use the new Dart language features created in the last 3 years
  • establish Dart analyzer rules that the code pushed into the repo should follow
  • use isolates for the UI blocking operations
  • write unit tests
  • write comments for the code that will be a part of the documentation
  • bug fixing

If somebody wants to help with any of the tasks, let’s discuss on the SIG matrix chat. Please specify how many hours per week you can dedicate for your desired task.

From what I understood chatting with the others developers on the matrix chat, they are okay with me doing the whole project. Please correct me if I’m wrong. I am also okay with integrating others in my effort. I can provide documentation and guidance for the mentioned tasks.

I haven’t posted here as often as I hoped, but I want to inform the community that work on the refactoring has already started. After this step is done, I will be able to work also on proper end user features, like EVM and BTC support. In the meantime, I was able to make some changes to the current codebase in order to support the latest Flutter version. Details here: Upgrade dependencies by maznnwell · Pull Request #128 · zenon-network/syrius · GitHub

10 Likes

Thank you for this update. My hope for this upgrade was for it to be open, transparent and in collaboration with other devs. I hope others have time to help out, but if not, I don’t see any reason for you to slow down.

Thanks for joining matrix and keeping us up to date!! Excited to see this come together.

Please request for review if you want these changes to be reviewed and merged.

OK. I will.