Sobes.tech
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
    }
}