Работал ли с корутинами

«Работал ли с корутинами» — вопрос из категории Coroutines и Flow, который задают на 27% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Да, работал. Корутины — это легковесные потоки, которые позволяют писать асинхронный код в последовательном стиле. Основные преимущества: меньше boilerplate, отмена операций через Job, structured concurrency.

Пример:

viewModelScope.launch {
    try {
        val data = withContext(Dispatchers.IO) { repo.fetchData() }
        updateUi(data)
    } catch (e: Exception) {
        showError(e)
    }
}

Использовал Dispatchers (Main, IO, Default), async/await для параллельных задач, Flow для реактивных потоков. Важно избегать блокирующих вызовов в корутинах и правильно обрабатывать ошибки.