Я работаю в проекте, и мне нужно добавить объект Retrofit с помощью Dagger 2. Я ищу информацию, но мне удалось сделать только несколько шагов, и теперь я не знаю, как продолжить:
Мой компонент:
@Singleton
@Component(modules = arrayOf(NetworkModule::class))
interface NetworkComponent {
fun inject(foo: TheApplication)
}
Мой модуль:
@Module
class NetworkModule {
@Provides
@Singleton
fun provideRetrofit(): Retrofit {
return Retrofit.Builder()
.baseUrl("https://api.chucknorris.io/")
.addConverterFactory(GsonConverterFactory.create())
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.build()
}
}
И теперь я вижу, что я должен сделать Class
, который простирается от Application
для init Component
и сделать @Inject
next:
class TheApplication: Application() {
override fun onCreate() {
super.onCreate()
val net: NetworkModule = Dagger...
}
}
Теоретически, когда я ставлю Dagger...
, это должно быть DaggerNetworkComponent
, но я перестраиваю проект и все еще отсутствует.
Кто-нибудь может объяснить мне, для чего предназначен Application.class
и как я могу продолжать?