/dagger-sample

This repository shows how to set up an Android project using Dagger

Primary LanguageKotlin

This repository shows how to set up an Android project using Dagger.

Features

  • Default dependency injection (DI) setup

checkout master

checkout branch dagger-view-model

checkout branch dagger-retrofit

checkout branch dagger-work-manager

How to add new activity/fragment to DI

Activity:

  • Add an activity, implements HasSupportFragmentInjector
class MainActivity : AppCompatActivity(), HasSupportFragmentInjector {

    @Inject
    lateinit var repository: SampleRepository

    @Inject
    lateinit var dispatchingAndroidInjector: DispatchingAndroidInjector<Fragment>

    override fun supportFragmentInjector() = dispatchingAndroidInjector
}
  • Register the activity to AndroidInjector in ActivityModule
@ContributesAndroidInjector(modules = [FragmentBuildersModule::class])
abstract fun contributeMainActivity(): MainActivity

Fragment

  • Add a fragment, implements Injectable
class MainFragment : Fragment(), Injectable {
}
  • Register the fragment in FragmentBuildersModule
@ContributesAndroidInjector
abstract fun contributeMainFragment(): MainFragment

Credit

This project is extracted and modified from GithubBrowserSample.