Sign In Start Free Trial
Account

Add to playlist

Create a Playlist

Modal Close icon
You need to login to use this feature.
  • Simplifying Android Development with Coroutines and Flows
  • Toc
  • feedback
Simplifying Android Development with Coroutines and Flows

Simplifying Android Development with Coroutines and Flows

By : Jomar Tigcal
5 (2)
close
Simplifying Android Development with Coroutines and Flows

Simplifying Android Development with Coroutines and Flows

5 (2)
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)
close
1
Part 1 – Kotlin Coroutines on Android
6
Part 2 – Kotlin Flows on Android

Exploring StateFlow and SharedFlow

In this section, we will dive into StateFlow and SharedFlow. SharedFlow and StateFlow are Flows that are hot streams, unlike a normal Kotlin Flow, which are cold streams by default.

A Flow is a cold stream of data. Flows only emit values when the values are collected. With SharedFlow and StateFlow hot streams, you can run and emit values the moment they are called and even when they have no listeners. SharedFlow and StateFlow are Flows, so you can also use operators on them.

A SharedFlow allows you to emit values to multiple listeners. SharedFlow can be used for one-time events. The tasks that will be done by the SharedFlow will only be run once and will be shared by the listeners.

You can use MutableSharedFlow and then use the emit function to send values to all the collectors.

In the following example, SharedFlow is used in MovieViewModel for the list of movies fetched:

class MovieViewModel : ViewModel() {
    ...
bookmark search playlist download font-size

Change the font size

margin-width

Change margin width

day-mode

Change background colour

Close icon Search
Country selected

Close icon Your notes and bookmarks

Delete Bookmark

Modal Close icon
Are you sure you want to delete it?
Cancel
Yes, Delete