Sobes.tech
Junior — Middle

How to implement a Dagger component in a project?

sobes.tech AI

Answer from AI

To implement a Dagger component in an Android project, you need to:

  1. Create an interface annotated with @Component. This interface declares methods for providing dependencies or injecting dependencies into target classes.

  2. Define modules using the @Module annotation, which contain methods annotated with @Provides, describing how to create dependencies.

  3. Initialize the component in code, usually through a generated class, for example, DaggerAppComponent.builder().build(), and use it for dependency injection.

Example:

@Component(modules = {NetworkModule.class})
public interface AppComponent {
    void inject(MainActivity activity);
}

@Module
class NetworkModule {
    @Provides
    Retrofit provideRetrofit() {
        return new Retrofit.Builder()
            .baseUrl("https://api.example.com")
            .build();
    }
}

// In MainActivity
public class MainActivity extends AppCompatActivity {
    @Inject
    Retrofit retrofit;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        DaggerAppComponent.create().inject(this);
        // Now retrofit is available for use
    }
}