Flow, SharedFlow, StateFlow Class Diagram

Kotlin Flow, SharedFlow, MutableSharedFlow, StateFlow, MutableStateFlow and FlowCollector class diagram


2 min read

Flow, SharedFlow, StateFlow Class Diagram

This is part of the asynchronous flow series:

Since I've been playing around with asynchronous Kotlin flow in Android, I have to admit that the class relationship between all these flow classes is not clear even though I know how to use them.

Therefore, I drew this diagram below to get me to understand them.

There are a few things that I did not expect before I get to see this big picture.

  • I didn't know StateFlow extends SharedFlow interface. I thought there are completely independent.

  • I didn't know MutableSharedFlow extends FlowCollector interface.

The green boxes in the above class diagram are interfaces and the purple boxes are the implementations of those interfaces, which you rarely need to care about it.

A few quick notes about the class diagram:

  • Flow.ShareIn() converts Flow to SharedFlow

  • Flow.StateIn() converts Flow to StateFlow

The rest should be self-explanatory. To understand the usage of these interfaces in detail, you can refer to my previous articles, start with part 2.

I hope you find these class diagram helpful. Enjoy! Code examples that you can play around with:

GitHub Repository: Demo_AsyncFlow

Did you find this article valuable?

Support Vincent Tsen by becoming a sponsor. Any amount is appreciated!