Why `AppComponent` marked as `Singleton` can have ...
# dagger
s
Why
AppComponent
marked as
Singleton
can have dependencies which are not
Singleton
?
AppComponent
Copy code
@Singleton
@Component(modules = [AppModule::class])
interface AppComponent {
    fun inject(mainActivity: MainActivity)
    fun inject(secondActivity: SecondActivity)
}
AppModule
Copy code
@Module
class AppModule(private val application: MyApplication) {
    
    @Provides
    @Singleton
    fun provideOkHttpClient(): OkHttpClient {
        return OkHttpClient.Builder().build()
    }

    @Provides
    fun provideRetrofit(okHttpClient: OkHttpClient): Retrofit {
        return Retrofit.Builder()
            .baseUrl("<https://api.unsplash.com>")
            .client(okHttpClient)
            .build()
    }
}
This works. If you see
provideRetrofit
is not annotated as
Singleton
but it works.