This is a good article for that usecase but there are apps (specially shopping carts) that follow a flow on each page, and that flow has to be stateful.

I recommend using something like Flux architecture to have the state in viewmodel there (like Mobious Library by Spotify).

For each usecase, you have a state in your viewmodel, but the difference with your approach is that the state itself is non-null and also immutable. when actions come from somewhere (like ui), the current state might change (by a usecase) based on the current state, and the change is propagated to the view.

--

--

Android Team Lead at Tapsi

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store