Deep dive into Kotlin Flow

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.


Summary

  • Dates 2025.09.12 / 15:20 ~ 16:00 (40min)
  • Place Koala
  • Language English

Intended audience

Those who want to stop feeling like *upstreamFlow.makeComplicated().collect { giveUp() }*.

Android is a trademark of Google LLC. The Android robot is reproduced or modified from work created and shared by Google and used according to terms described in the Creative Commons 3.0 Attribution License. Android, Google Play and the Google Play logo are trademarks of Google LLC.

© 2014- DroidKaigi Committee