Understanding side effects
In the Using Scaffold() to structure your screen section of Chapter 6, Building a Real-World App, I showed you how to display a snack bar using rememberCoroutineScope {}
and snackbarHostState.showSnackbar()
. As showSnackbar()
is a suspending function, it must be called from a coroutine or another suspending function. Therefore, we created and remembered CoroutineScope
using rememberCoroutineScope()
and invoked its launch {}
function.
Invoking suspending functions
The LaunchedEffect()
composable is an alternative approach for spawning a suspending function. To see how it works, let’s look at the LaunchedEffectDemo()
composable. It belongs to the EffectDemo
example, as illustrated in the following screenshot:
Figure 7.1 – The EffectDemo example showing LaunchedEffectDemo()
LaunchedEffectDemo()
implements a counter. Once the Start button has been clicked, a counter is incremented every second. Clicking on Restart...