Book Image

Simplifying Android Development with Coroutines and Flows

By : Jomar Tigcal
Book Image

Simplifying Android Development with Coroutines and Flows

By: Jomar Tigcal

Overview of this book

Coroutines and flows are the new recommended way for developers to carry out asynchronous programming in Android using simple, modern, and testable code. This book will teach you how coroutines and flows work and how to use them in building Android applications, along with helping you to develop modern Android applications with asynchronous programming using real data. The book begins by showing you how to create and handle Kotlin coroutines on Android. You’ll explore asynchronous programming in Kotlin, and understand how to test Kotlin coroutines. Next, you'll learn about Kotlin flows on Android, and have a closer look at using Kotlin flows by getting to grips with handling flow cancellations and exceptions and testing the flows. By the end of this book, you'll have the skills you need to build high-quality and maintainable Android applications using coroutines and flows.
Table of Contents (11 chapters)
1
Part 1 – Kotlin Coroutines on Android
6
Part 2 – Kotlin Flows on Android

Chapter 5: Using Kotlin Flows

In the previous three chapters, we dove into Kotlin coroutines and learned how we can use them for asynchronous programming in Android. We learned about coroutine builders, scopes, dispatchers, contexts, and jobs. We then learned how to handle coroutine cancelations, timeouts, and exceptions. We also learned how to create tests for coroutines in your code.

In the next three chapters, we will focus on Kotlin Flow, a new asynchronous stream library built on top of Kotlin coroutines. A flow can emit multiple values over a length of time instead of just a single value. You can use Flows for streams of data, such as real-time location, sensor readings, and live database values.

In this chapter, we will explore Kotlin Flows. We will start by building Kotlin Flows. Then, we will look into the various operators you can use for transforming, combining, buffering, and doing more with Flows. Finally, we will learn about StateFlows and SharedFlows.

This...