“ Jetpack Compose provides a declarative API that allows you to render app UI without imperatively mutating front end views making it easier & faster. 3
Important terms to remember ▫ Composition : creation of the UI described by composable functions ▫ Recomposition: Re-running composables to update composition when there is a data change 5
State Hoisting Extract the state from the composable, move it to the caller of the composable & pass it to the composable as an immutable parameter, along with functions as parameters to represent events. 7
Key things to remember ▫ Composable functions can execute in random order or parallelly ▫ Compose does intelligent recomposition & skips as much as possible ▫ Recomposition can be canceled & restarted OR might run very frequently 10
MVI Model is the immutable state-single source of truth, consumed by the UI to be rendered; And View generates UI events which passes intent as actions to manipulate model. 17 View Intent Model Ui Events Action to mutate state
Conclusion ▫ UI in Compose is immutable. ▫ It only accepts state & expose events ▫ Unidirectional data flow pattern like MVVM fits well ▫ Using ViewModel as state holder ensures clean architecture & intelligent efficient recomposition. 19