I'm building my first real GUI app which is a wizard, where each step contains a bunch of components that the user interacts with; which all may end up reading or writing to the filesystem one way or another.
Inside each step, various components of the GUI have their own purpose, and what happens later in the wizard may depend on what has come before it.
That's why I (think) I don't want something like MVC, where the job of the GUI is simply to return a list of the users desires to a central controller; I don't want the controller to be invoked only at the end of every step, when the user presses 'next', I want everything to be real time, and the 'next' button to automatically appear, only when everything is correct (rather than a static button that sends the data to the controller, who then returns a
Result of the entire validation.
I.e. I want the state of each step to store a bunch of
Options, which turn
Some after user input and validation, and the next button to appear automatically when all of the struct is filled with
Somes. This means we don't separate concerns between the front end and the backend. The front-end directly fires it's backend request (such as selecting a file) which I hear is a no-no, and so before I put too much investment into this strategy, I wanted to run it by the far wiser than me among you.
What do you think?