Android - Kotlin Flows (часть 1)

67 Просмотры
Издатель
Что такое Kotlin Flows и для чего они нужны. Реактивное программирование с помощью Kotlin Flows. Отличия Cold и Hot Flows. Создание Flow: flowOf, asFlow, flow, callbackFlow. Миграция с Callback-интерфейсов на Flow. Использование MutableStateFlow и Flow вместо LiveData. Объединение нескольких Flow с помощью оператора combine.

Kotlin Flows представляют собой альтернативу к Reactive Streams (http://reactivex.io), адаптированную к использованию вместе с корутинами.

Исходники проекта "до": https://github.com/romychab/android-tutorials/tree/764faca4a06b7c19655335b49c9bc4933ad90ceb/mvvm-foundation-coroutines

Исходники проекта "после": https://github.com/romychab/android-tutorials/tree/528fbd48d8c78701a703b5725099ea775555096e/mvvm-foundation-coroutines

Список всех изменений: https://github.com/romychab/android-tutorials/commit/528fbd48d8c78701a703b5725099ea775555096e

Документация по Kotlin Flows: https://kotlinlang.org/docs/flow.html

00:00 - Введение
00:39 - Теория
08:34 - Что такое "реактивность" / "реактивное программирование"?
10:59 - Создание Flow из набора существующих элементов: flowOf, asFlow
15:47 - Подключение библиотек
16:48 - Метод flow: создание Cold Flow
22:29 - Оператор flowOn: смена контекста выполнения Flow
24:53 - Что происходит при вызове терминального оператора на Cold Flow
26:00 - Метод callbackFlow: преобразование Callback'ов во Flow
33:19 - Использование Flow вместо методов обратного вызова
35:26 - Hot Flows: использование StateFlow/MutableStateFlow, замена LiveData на Flow
42:23 - Объединение нескольких Flow: оператор combine
45:59 - Пример использования оператора map и обратного преобразования Flow в LiveData
47:02 - Правки во вью-модели, запуск Flow с игнорированием элементов, испускаемых Flow
48:58 - Подписка на Flow в фрагменте
52:36 - Запуск проекта, выводы
Категория
Разработка Приложений
Комментариев нет.