Using Android View Model
Define a ViewModel which runs the formula as a StateFlow until onCleared is called.
class CounterViewModel : ViewModel() {
private val formula = CounterFormula()
val outputs: StateFlow<CounterOutput> =
formula.runAsStateFlow(viewModelScope, input = Unit)
}
In our activity, we then collect the Output changes and render them with Compose.
class MyActivity : ComponentActivity() {
private val viewModel: CounterViewModel by viewModels()
override fun onCreate(state: Bundle?) {
super.onCreate(state)
setContent {
val output by viewModel.outputs.collectAsStateWithLifecycle()
CounterScreen(output)
}
}
}