It actually works quite well. Don’t confuse “dispatching on the main thread” with “doing network operations on the main thread”. When you call suspend functions in Ktor’s HttpClient, the work happens on a background thread internally. It’s only when the suspend function returns that you’re back on main. This is usually fine for simple use-cases if all you’re doing is taking data from the web response and displaying it in UI.