Usually the best way to teach something is by building something that already exists.
When I want to learn something, I do search for an already existing app' that do use the language/framework/lib that I want to learn, then I do replicate it from design to features.
This permits to master both the View logic and the Business logic behind the views.
This is IMHO the best learning methodology and I had wish this would have been how we were reached at school. But it was not.
🤘