Hoisting state and passing events
So, state is any value that can change over time. As Jetpack Compose is a declarative UI framework, the only way to update a composable is to call it with new arguments. This happens automatically when state that a composable is using changes. State hoisting is a pattern of moving state up to make a composable function stateless.
Besides making a composable more easily reusable and testable, moving state up is necessary to use it in more than one composable function. You have already seen this in quite a few of my sample apps. For example, in the Composing and recomposing the user interface section of Chapter 3, Exploring the Key Principles of Compose, we used three sliders to create and display a color.
While state controls the visual representation of a composable function (that is, how it looks on screen), events notify a part of a program that something has happened. Let’s focus a little more on this. My sample FlowOfEventsDemo
app...