geigi / cozy

🎧 Listen to audio books 📚 on Linux
https://cozy.sh
GNU General Public License v3.0
1.09k stars 84 forks source link

Rethink MVVM architecture #942

Open rdbende opened 1 month ago

rdbende commented 1 month ago

Cozy uses the model-view-viewmodel architecture which is probably the best one for this kind of application. However, the implementation basically duplicates the "view" part of it as there is the actual Blueprint file, and also a Python class for it.

My intention is to change this by dropping the view classes, as well as the architecture for it (the EventSender and the Observer classes), and use GObject property bindings and signals throughout the application. This way the view model can be bound directly from the UI definition, and there's no need for an intermediary layer.

rdbende commented 1 month ago

Related to #844