Skip to main content

Command Palette

Search for a command to run...

Flow, SharedFlow, StateFlow Class Diagram

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

Updated
2 min read
Flow, SharedFlow, StateFlow Class Diagram
V

I'm a self-taught hobbyist Android developer who loves to build projects and share valuable tips for new Android developers.

Feel free to comment, share or connect with me!

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

Kotlin Coding

Part 2 of 20

Learn the key concepts and best practices for programming in Kotlin from a self-taught Android developer.

Up next

Kotlin Infix Notation is Confusing

If you see a method call that have space between, it is likely a Kotlin infix notation.