Содержание пакета (2 курса)
1. Корутины и Flow в Android: практический курс 4.50
Базовые корутины в Android
4 урока
1.
Правила запуска корутин в Android
↗
2.
lifecycleScope
↗
3.
viewModelScope
↗
4.
Корутины в Compose: LaunchedEffect и rememberCoroutineScope
↗
Работа с Flow в ViewModel
5 уроков
1.
Холодные потоки
↗
2.
Горячие потоки
↗
3.
StateFlow
↗
4.
SharedFlow
↗
5.
Сравнение StateFlow и SharedFlow
↗
Управление потоком
6 уроков
1.
Типичный конвейер движения данных в Flow
↗
2.
Фильтрация (debounce(), sample(), distinctUntilChanged(), filter
↗
3.
Трансформация (*Latest)
↗
4.
Согласование скоростей (backpressure)
↗
5.
Коллектор
↗
6.
Комбинирование операторов
↗
Корутины и Room
8 уроков
1.
Моделирование базы данных для работы с корутинами и Flow
↗
2.
Архитектура слоя данных в приложении
↗
3.
DAO и корутины
↗
4.
Репозиторий и транзакции
↗
5.
Адаптация алгоритма SM-2
↗
6.
ViewModel
↗
7.
Интерфейс
↗
8.
MainActivity и заполнение БД
↗
Flow и Room
4 урока
1.
От декларативного UI к реактивным данным
↗
2.
Границы применения Flow
↗
3.
Пишем экран статистики
↗
4.
Пишем систему мотивации
↗
Flow и Retrofit
8 уроков
1.
Выбор архитектуры: offline-tolerant или offline-first?
↗
2.
Сетевой слой
↗
3.
Наш учебный API и интерфейс ApiService
↗
4.
Анонимная аутентификация
↗
5.
Outbox-синхронизация прогресса
↗
6.
Пишем лидерборд
↗
7.
Новый экран статистики
↗
8.
Итоги
↗
Послесловие
1 урок
1.
Послесловие
↗
2. Корутины и Flow в Kotlin 4.91
Введение
4 урока
1.
От автора
↗
2.
Исторический экскурс
↗
3.
Ключевые термины
↗
4.
Корутины vs. потоки
↗
Быстрый старт
4 урока
1.
Первая корутина
↗
2.
Вторая корутина
↗
3.
suspend
↗
4.
Точки приостановки. delay и yield
↗
Билдеры корутин
3 урока
1.
runBlocking
↗
2.
launch и async
↗
3.
Применение функции select в связке с async
↗
Структурированная конкурентность
4 урока
1.
Иерархия корутин. Скоупы
↗
2.
CoroutineScope()
↗
3.
coroutineScope
↗
4.
GlobalScope
↗
Контекст корутины
4 урока
1.
Структура контекста
↗
2.
Сложение и вычитание контекстов
↗
3.
Формула композиции контекстов
↗
4.
Примеры создания контекста
↗
Диспетчеры
5 уроков
1.
Понятие диспетчера
↗
2.
Dispatchers.Default
↗
3.
Dispatchers.IO
↗
4.
Dispatchers.Main
↗
5.
Dispatchers.Unconfined
↗
Job
5 уроков
1.
Определение и жизненный цикл
↗
2.
Создание Job
↗
3.
Отмена Job
↗
4.
Ожидание потомков
↗
5.
Распространение отмены по иерархии
↗
Обработка исключений
4 урока
1.
Исключения в билдерах и корутин-скоуп функциях
↗
2.
Распространение исключений по иерархии
↗
3.
SupervisorJob и supervisorScope
↗
4.
Обработчик CoroutineExceptionHandler
↗
Тестирование корутин
5 уроков
1.
Библиотека kotlinx-coroutines-test и функция runTest
↗
2.
Виртуальное время
↗
3.
Собственный планировщик
↗
4.
Тестовые диспетчеры
↗
5.
Тестирование исключений
↗
Каналы
5 уроков
1.
Паттерн producer-consumer. Функции send() и receive()
↗
2.
Создание канала
↗
3.
Параметры канала
↗
4.
Несколько отправителей и получателей
↗
5.
Select для работы с каналами
↗
Kotlin Flow
7 уроков
1.
Ленивые вычисления
↗
2.
Понятие Flow. Создание Flow
↗
3.
Структура Flow. Операторы
↗
4.
Управление скоростью потока
↗
5.
Контекст выполнения
↗
6.
Обработка исключений в Flow
↗
7.
Отмена потоков
↗
Горячие потоки данных в Kotlin Flow
3 урока
1.
SharedFlow
↗
2.
MutableSharedFlow
↗
3.
StateFlow и MutableStateFlow
↗
Послесловие
1 урок
1.
Материалы для дальнейшего изучения
↗