By default, if a dispatcher is not specified, any coroutine launched in viewModelScope will run on the main thread. However, in most use cases, we launch these coroutines to perform background tasks, such as — making API calls, or database operations. To ensure these tasks run in the background thread, it is essential to specify an appropriate dispatcher: