La introducción de las co-rutinas de Kotlin abrió la puerta a varias innovaciones; Kotlin Flow es una de ellas, directamente integrada en la biblioteca de co-rutinas. Es una implementación de Reactive Streams basada en co-rutinas. A diferencia de RxJava, los flujos son un API nativa de Kotlin, similar a la familiar API de secuencias con métodos que incluyen map
y filter
. De manera similar a las secuencias, los flujos son "fríos", lo que significa que los valores de las secuencias se construyen únicamente cuando se necesitan. Todo esto hace que el código con múltiples hilos de ejecución sea más fácil de escribir y entender que con otros enfoques. El método toList
convierte un flujo en una lista de forma predecible, lo cual es un patrón recurrente en las pruebas.