[โ ๏ธ JOURNEY] Building MP3 AI Manager for Data Hoarders (Day 7-10)
Day 7-10
Hours Total: 17
Day Recap
Outcome: Followed an MVVM to-do list tutorial for Avalonia and set up a more complex project structure. While the framework is interesting, the syntax complexity and learning curve are starting to weigh heavily—especially compared to React.
What I Did
- Created a new Avalonia MVVM solution in Visual Studio:
- The template generated folders like Assets, Models, ViewModels, and Views.
- Very different from how React organizes projects—especially the separation of concerns
- Learned that AXAML requires extra namespacing to access Avalonia-specific UI elements.
- This added complexity means I need to declare namespaces just to inform AXAML that a class or method exists
- Created a Model and ViewModel for the to-do list.
- Found out that Avalonia has a lot of built-in helper classes, but you need to know them in advance, like how to set up simple array getters and setters.
- Learned about ViewLocator:
- A mechanism in Avalonia that automatically finds and loads views based on the ViewModel passed to it.
- Realized that namespacing in AXAML is similar to
import
in JavaScript.- Once a namespace is declared, all classes and objects within it become visible for use in the file.
Remarks
Avalonia’s MVVM structure is much more formal and complex compared to the flexibility of React. There’s a lot of boilerplate and helper classes that you need to understand early on, like getters/setters for arrays or property binding mechanics.
That said, ViewLocator feels powerful in how it decouples logic from presentation. However, the syntax complexity is starting to feel overwhelming. It’s a big shift from React’s component-based architecture.
Next Goals
Continue following the to-do list tutorial to finish the basic app.