Junior — Middle
Do you have experience using Dagger in your projects?
sobes.tech AI
Answer from AI
Yes, I have used Dagger for dependency injection in Android projects. Dagger helps manage the creation and provision of objects, which improves code modularity and testability. For example, using annotations like @Inject and @Module, you can define how dependencies are created, and Dagger will automatically generate the code to provide them.
Example of using Dagger 2:
// Define a module with dependency providers
@Module
class NetworkModule {
@Provides
fun provideRetrofit(): Retrofit {
return Retrofit.Builder()
.baseUrl("https://api.example.com")
.build()
}
}
// Component that links dependencies
@Component(modules = [NetworkModule::class])
interface AppComponent {
fun inject(activity: MainActivity)
}
// Inject dependency in Activity
class MainActivity : AppCompatActivity() {
@Inject lateinit var retrofit: Retrofit
override fun onCreate(savedInstanceState: Bundle?) {
DaggerAppComponent.create().inject(this)
super.onCreate(savedInstanceState)
// Use retrofit
}
}