How to integrate Dependency Injection with other Android components?

Dependency Injection (DI) is a design pattern that helps to manage dependencies in your code, making it more modular, easier to test, and maintain. In Android development, integrating DI with various components like Activities, Fragments, ViewModels, and Services can lead to cleaner and more efficient code architecture.

Here's an example of how to integrate Dependency Injection using Dagger 2, a popular DI framework in Android.

// Define a module to provide dependencies @Module public class AppModule { @Provides @Singleton Context provideContext(Application application) { return application.getApplicationContext(); } } // Define a component that uses the module @Singleton @Component(modules = {AppModule.class}) public interface AppComponent { void inject(MyActivity activity); } // An Activity where we use the injected dependencies public class MyActivity extends AppCompatActivity { @Inject Context context; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); DaggerAppComponent.create().inject(this); // Now you can use 'context' injected by Dagger } }

Dependency Injection Android Components Dagger 2 Android Development Modular Code