Slide 116
Slide 116 text
Boilerplate - meta programming - KSP
@Inject
@ContributesBinding
class WeatherRepositoryImpl(
val locationProvider: LocationProvider,
) : WeatherRepository
@MergeComponent(AppScope::class)
interface AppComponent
class FinalAppComponent : AppComponent, BaseComponent {
override val locationProvider: LocationProvider = RealTimeLocationProvider()
private val weatherRepository: WeatherRepository = WeatherRepositoryImpl(
locationProvider = ???,
)
override val weatherReport: WeatherReport = WeatherReport(
weatherRepository = weatherRepository,
locationProvider = locationProvider,
)
}