Вступить в клуб →
сложнаявопросKotlin Multiplatform: общий код для Android и iOS

Общая функция расчёта маршрута подвешивает интерфейс на iOS и Android

// commonMain
suspend fun buildRoute(points: List<Point>): Route {
    return optimizer.solve(points) // чистый расчёт, ~2 с для 200 точек
}

На Android вызывается из viewModelScope.launch, на iOS — через try await из SwiftUI. На обеих платформах интерфейс замирает на две секунды. Разработчик удивлён: «функция же suspend». Как исправить?

  • Обернуть расчёт в withContext(Dispatchers.Default)
  • Добавить delay(1) в начало функции перед расчётом
  • Вызывать функцию на обеих ОС через runBlocking
  • Убрать suspend и сделать функцию обычной

🔒 Проверка ответа — для участников клуба

  • Проверка ответа
  • Подсказка, если застряли
  • Разбор с объяснением, почему так
  • Прогресс по всем задачам и виртуальные собеседования
Зарегистрироваться →

Регистрация занимает минуту

Другие задачи раздела