Difference between Flow, Shared Flow and StateFlow in Android?

In Android development with Kotlin and Jetpack Compose, you often work with different types of data flows and observables to handle UI updates efficiently. Three commonly used options are Flow, SharedFlow, and StateFlow. Here, I'll provide a simple code example for each and explain every line of code for a non-technical person.