Складчина: Корутины и Flow в Kotlin [Stepik] [Яна Седова]
Корутины (Kotlin Coroutines) — стандарт асинхронного программирования в Kotlin.
Они заменяют устаревшие потоки и callbacks, упрощают работу с параллельными задачами и стали основой Android, Ktor и Spring WebFlux. Если вы хотите писать современный, быстрый и надежный код, без корутин сегодня никуда.
Кроме того, о корутинах всегда спрашивают на технических собеседованиях по Kotlin и Android, поэтому всем нам, разработчикам, необходима твердая теоретическая база.
Курс построен по принципу быстрого старта. Уже во второй главе вы напишете свою первую корутину и увидите, что асинхронное программирование может быть простым и понятным.
В отличие от других учебных материалов, курс делает акцент не на тонкостях реализации библиотеки Kotlin Coroutines, а на практическом программировании: как правильно запускать задачи, управлять их жизненным циклом, обрабатывать исключения и тестировать код.
Теоретическая часть охватывает корутинные билдеры, скоупы, контексты, исключения и тестирование. Последние три главы посвящены каналам и Flow — инструментам, которые активно применяются в современных проектах.
Практическая часть включает тесты для закрепления изученного.
Рекомендовано российским сообществом Kotlin!
Для кого этот курс:
- Android-разработчики, которые используют Kotlin Coroutines и Flow и хотят глубже понять асинхронность.
- Backend-разработчики на Kotlin, которых интересуют современные подходы к структурированной конкурентности.
- Full-stack и multiplatform-разработчики, которым важно разбираться в корутинах, каналax и потоках данных, независимо от платформы.
- Разработчики, готовящиеся к техническим собеседованиям: вопросы о suspend-функциях, scope, Flow и обработке исключений — стандартная практика.
- Те, кто переходит с RxJava на современный подход с корутинами.
Базовые знания синтаксиса Kotlin: переменные, функции, классы. Всё остальное разберем в процессе.
В курс входят:
- 54 урока (текстовых)
- 23 теста
- Введение
- Быстрый старт
- Билдеры корутин
- Структурированная конкурентность
- Контекст корутины
- Диспетчеры
- Job
- Обработка исключений
- Тестирование корутин
- Каналы
- Kotlin Flow
- Горячие потоки данных в Kotlin Flow
- Послесловие
Введение
- От автора
- Исторический экскурс
- Ключевые термины
- Корутины vs. потоки
- Первая корутина
- Вторая корутина
- suspend
- Точки приостановки. delay и yield
- runBlocking
- launch и async
- Применение функции select в связке с async
- Иерархия корутин. Скоупы
- CoroutineScope()
- coroutineScope
- GlobalScope
- Структура контекста
- Сложение и вычитание контекстов
- Формула композиции контекстов
- Примеры создания контекста
- Понятие диспетчера
- Dispatchers.Default
- Dispatchers.IO
- Dispatchers.Main
- Dispatchers.Unconfined
- Определение и жизненный цикл
- Создание Job
- Отмена Job
- Ожидание потомков
- Распространение отмены по иерархии
- Исключения в билдерах и корутин-скоуп функциях
- Распространение исключений по иерархии
- SupervisorJob и supervisorScope
- Обработчик CoroutineExceptionHandler
- Библиотека kotlinx-coroutines-test и функция runTest
- Виртуальное время
- Собственный планировщик
- Тестовые диспетчеры
- Тестирование исключений
- Паттерн producer-consumer. Функции send() и receive()
- Создание канала
- Параметры канала
- Несколько отправителей и получателей
- Select для работы с каналами
- Ленивые вычисления
- Понятие Flow. Создание Flow
- Структура Flow. Операторы
- Управление скоростью потока
- Контекст выполнения
- Обработка исключений в Flow
- Отмена потоков
- SharedFlow
- MutableSharedFlow
- StateFlow и MutableStateFlow
- Материалы для дальнейшего изучения
Цена 3490 руб.
Скрытая ссылка