Диспетчеры на разных платформах
Выбирайте диспетчеры, существующие на Android и iOS
«Диспетчеры на разных платформах» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 2 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Части этого урока еще не переведены и отображаются на английском.
Where Work Actually Runs
A coroutine still runs on some thread. A dispatcher decides which thread or pool it uses, and that choice matters on each platform.
Meet Dispatchers.Default
Use Dispatchers.Default for CPU-heavy work like parsing or sorting. It exists on Android and iOS, so shared code can rely on it.
withContext(Dispatchers.Default) { sort(data) }Dispatchers.Main for UI
Dispatchers.Main runs on the platform UI thread. It is available in common code, but only update screens from here.
withContext(Dispatchers.Main) { render(state) }The IO Dispatcher Gap
Watch out: Dispatchers.IO exists on the JVM and Android but not in plain common code on every target. Do not assume it is everywhere.
Stay in Common-Safe Land
For portable shared logic, prefer Default and Main. They are guaranteed across the targets KMP commonly supports.
Switching with withContext
You move work between threads using withContext. Compute on Default, then hop to Main to publish the result, all in one function.
val r = withContext(Dispatchers.Default) { heavy() }Dispatchers Are Pluggable
A dispatcher is just a CoroutineContext element. You can pass one in, which makes shared code easy to configure and test.
class Loader(val io: CoroutineDispatcher)Inject for Testability
Passing the dispatcher in lets tests swap a deterministic one. Hard-coding it makes shared async logic harder to test. 🧪
iOS Runs Them Too
On iOS these dispatchers map onto the right native queues automatically. Your shared code does not care about GCD details.
One Choice, Both Platforms
Because the dispatcher names are common, the same line schedules work correctly on Android and iOS. No platform branches in your logic. ✨
Pick the Right Tool
Rule of thumb: Default for computation, Main for UI updates, and inject anything IO-like so it stays portable. 🎯
Quick Check
Pick the dispatcher choice that is safest for shared KMP code.
Recap
You learned to pick dispatchers wisely: Default for computation, Main for UI, and inject IO-style ones since they are not on every target. 🎉
Часто задаваемые вопросы
Урок «Диспетчеры на разных платформах» бесплатный?
Да — полный текст урока «Диспетчеры на разных платформах» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.
Чему я научусь в уроке «Диспетчеры на разных платформах»?
Выбирайте диспетчеры, существующие на Android и iOS Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.
Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?
Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 2 из 4.
Сколько времени занимает урок «Диспетчеры на разных платформах»?
Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.
Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?
Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.
Все уроки этого курса
- Функции suspend, работающие повсюду
- Диспетчеры на разных платформах
- CoroutineScope и жизненный цикл
- withContext и структурированная конкурентность