See more
Coroutines build upon regular functions by adding two new operations. In addition to invoke (or call) and return, coroutines add suspend and resume.
When a class is concrete and has an annotated constructor, Dagger can automatically generate a provider for that class. Since WeatherService is an interface, however, we must give Dagger more information.