Scope - makstron/info GitHub Wiki
**Defines a scope for new coroutines. **
Every coroutine builder (like launch, async, etc) is an extension on CoroutineScope and inherits its coroutineContext to automatically propagate all its elements and cancellation.
Global scope is used to launch top-level coroutines which are operating on the whole application lifetime and are not canceled prematurely.
viewModelScope — это свойство расширения Kotlin в классе ViewModel. Это CoroutineScope, который отменяется после уничтожения ViewModel (когда вызывается onCleared ()). Таким образом, когда вы используете ViewModel, вы можете запустить все свои корутины, используя эту область.
coroutineScope - принимает ошибки от своих дочерних корутин и просто не шлет их дальше в родительскую корутину
supervisorScope - не принимает ошибку от дочерних
withContext - это coroutineScope с возможностью добавить/заменить элементы контекста
runBlocking - запускает корутину, которая блокирует текущий поток, пока не завершит свою работу (и пока не дождется завершения дочерних корутин).