English
Summary
Conclusions
MVVM makes state and events explicit, navigation manages history, and the repository isolates persistence. Reliability is also determined by behavior on failure: the draft is not lost, the UI does not freeze, cancellation propagates, and success is confirmed after the transaction.
Self-check questions
- Why should a ViewModel not know about the NavController?
- When does collectAsState stop collecting the flow?
- Why is an id passed in a route instead of the full object?
- How does a form error differ from a one-time message?
- What does a fake repository test, and what does it not test?
- Why is restarting the installed program a separate check?