In the recent Android development, the concept of Reactive UI is mandatory. Many developers have adopted subscription-based data streaming for robust softwares, and they have been using Flow from Kotlin Coroutine. As for asynchronous programming in Kotlin Coroutine, the benefit of synchronous-like coding style is often highlighted. However, Flow doesn't always allow such simplification. In particular, orchestrated multiple Flows would be complicated. I would argue that simply understanding the subscription code of a Flow is not enough to write bug-less code. In many cases, you need to know the actual Flow class, the design of the upstream, the external dependencies involved by operator chaining and/or the entire of the running environment. In this session, I will talk about the design/behavior of the existing Flow operators, how to implement/test new custom Flow operators, and what point should be tested. You could grasp the basics of Flow from my session. Keywords: Channel, select clause, intermediate operators, terminal operators, cashapp/turbine
Jumpei Matsuda Drivemode, Inc.
Those who want to stop feeling like *upstreamFlow.makeComplicated().collect { giveUp() }*.