boats-animator icon indicating copy to clipboard operation
boats-animator copied to clipboard

Rewrite application to use React and Redux

Open charlielee opened this issue 3 years ago • 4 comments

Why?

  • BA has a large and growing code base. Maintaining it in pure JavaScript is becoming increasingly difficult.

  • The current code lacks a central state store which makes adding features such as projects, audio import and x-sheets very difficult. Adding Redux will supercharge the development of these features.

  • React will make it far easier to add new features that require more complex user interface controls such as camera controls and application preferences.

Will this slow down the development of new features?

  • The application is already powered by Electron, JavaScript and CSS, so much of this code will be portable to React.

  • The time it will take to re-implement the existing features will be balanced out by how much easier it will to add planned new features.

  • I also use React in my day job as a software engineer so I will be able to bring more of my professional knowledge over to Boats Animator, which will grow with time.

How will this work with Git?

~~The initial React work will occur in a new branch called react. This will not be merged into master until the rewrite has at a minimum the same features as the current version of Boats Animator.~~

~~Minor enhancements and bug fixes will continue to be accepted into master but my focus will be on the react branch.~~

The incomplete rewrite has now been merged into master. The prior state of the codebase can be inspected from the last release tag. https://github.com/charlielee/boats-animator/tree/v0.12.0

How long will this take?

~~I am planning to fully release the first React powered version of Boats Animator by the end of 2021 as v1.0.0. I can't say exactly which features this will have at the moment. I intend to share pre-release builds on GitHub and Discord before then.~~

This work is a daunting task but I believe it will ensure a very successful future for Boats Animator. Thanks for your continued support!

charlielee avatar Aug 23 '21 20:08 charlielee

@charlielee This feels like the way to go really. I have been working with React and Redux A LOT over the last years, so should be able to help on the development if anything comes up. 🙂

Honestly, adding new features will then be a billion times faster / easier

AndreasDemenagas avatar Aug 23 '21 20:08 AndreasDemenagas

@AndreasDemenagas that's very handy to know! I'm very excited for what this move will bring 😄

charlielee avatar Aug 23 '21 21:08 charlielee

This is super exciting! I have no knowledge of React (I kinda want to learn Vue) and I know I've not helped with Boats in a while but I'm still a supporter and fan and want to see it succeed. Your skills have really grown and you've made a great app. I'm eager to see it go further! 😊

le717 avatar Aug 24 '21 17:08 le717

I should update this issue to say that while I am hard at work on this, I will no longer be giving any indication of a possible release date.

Checking out the GitHub project is the best way to keep up on progress: https://github.com/users/charlielee/projects/1/

charlielee avatar Apr 10 '22 15:04 charlielee