Flow Intermediate Operator

In this series of articles , we are discussing about Kotlin flows and in this article we will discuss about Flows Intermediate Operators
Code : https://gist.github.com/vprabhu/04cd8f6eaeecaf0d3de72049d023eddf
Sample Android App :
Code : https://github.com/vprabhu/FlowUpdateUI/
This simple android app demos how to update compose UI ( Progress bar and result text) with the help of flow operators .

What is Intermediate Operators?
These operators can transform the flow
These operators are applied to upstream flow and return a downstream flow
These operators are not suspending function means it executes instantly and return a new transformed flow.
In this article ,we will learn about most used operators in Android app development.
onStart()
Syntax:
fun <T> Flow<T>.onStart(action: suspend FlowCollector<T>.() -> Unit): Flow<T>(source)
As we can see from above syntax ,
The action block is executed before the collection of flow and this is called before the upstream starts
onEach()
Syntax:
fun <T> Flow<T>.onEach(action: suspend (T) -> Unit): Flow<T>(source)
As the name implies , this operator is executed on emission of each value
returns a flow after executing the action on each value/item from the upstream flow to downstream flow
onCompleted()
Syntax:
fun <T> Flow<T>.onCompletion(action: suspend FlowCollector<T>.(cause: Throwable?) -> Unit): Flow<T>(source)
As the name implies , this operator is executed after the flow is completed or cancelled.
cause:Throwable-> this return null when the flow is completed and the same will return exception if the flow is cancelled .
In the next article , we will discuss about Flow Cancellation.
Please leave your comments to improve and discuss more
Happy and Enjoy coding


