This task focuses on making the app friendly to its target audience. You have to remember that potential users of this app would be suffering from mental illness and as such it won't be wrong to assume that asking a lot of questions won't be the best choice. In addition, the mechanism adopted for asking said questions need to be the least intrusive one you can think of. That way, we get the required information at minimum inconvenience to the end-user.
Another detail worth mentioning is the double-tap to disappear feature. Once the user is done with a task, the user can get rid of it from the screen using just a double-tap. Easy, intuitive and satisfying - just the way we want it!
An important thing to note while building the screens and using the variables that power your app, is state management.
State Management
There are different options you can take to manage state in your application. I'll list a few of them below:
Streams (BLoC)
The BLoC principle can be used to provide fast, reactive state management. The changes in variables are reflected almost instantly.
It however, requires some initial set-up and boilerplate code to get it running. Research articles on how to build reactive apps on Flutter and this might help you get started on it.
Redux
A familiar way to manage state for web developers. You can look up resources that can get you up to speed with it.
The Redux package on pub.dev
is linked here.
Constructors
You can transfer variables between different screens using their constructors. It is the easiest way to achieve state management.
It however gets a bit complex with increasing state variables and might lead to complications, further into development.
You can compare both approaches and see which one works best. You're also free to find out other best practices to achieve the goal.