Dagger2 - wstrzykiwanie bez inject(). Czy możliwe?

Kliknij i wspomóż mnie :)

Android

Wstęp

Ten materiał jest częścią kursu Dagger2 w Android na platformie Udemy. Omawiam tam krok po kroku wprowadzenie oraz używanie biblioteki Dagger2 służącej do wstrzykiwania zależności.

Kilka darmowych odcinków można znaleźć tutaj:

Kurs Dagger2 w Android

Jak było dotychczas?

Ucząc się wstrzykiwania zależności z Dagger'em zwykle zaczynamy od utworzenia komponentu bazowego i przekazania mu kontekstu aktywności lub aplikacji.

Schemat ten mimo, że popularny to niszczy wzorzec, gdyż klasa nie powinna wiedzieć niczego o wstrzykiwaniu!

Rozwiązanie na ten problem istnieje i właśnie je pokażę 😉

Konfiguracja

Aby zacząć korzystać z komponentów dla Androida, musimy dodać zależności do naszego pliku build.gradle.

Najnowszą wersję Dagger'a można sprawdzić tutaj:

mvnrepository.com

Konfigurację kodu zaczynamy od rozszerzenia klasy bazowej o DaggerApplication

Następnie inicjujemy nasz główny komponent. Wygląda to tak:

Teraz w komponencie musimy także dokonać zmiany.

Do modułów dodajemy:

  • ActivityBindingModule - określa aktywności używające wstrzykiwania
  • ActivityBindingModule - zapewnia użyteczność klas dagger.android

Komponent rozszerzamy także o AndroidInjector.

Całość wygląda tak:

Dodawanie nowych aktywności

Jak teraz określimy, które Activity będzie korzystać z wstrzykiwania? Za pomocą właśnie naszej klasy ActivityBindingModule.

Musi ona posiadać metody z typem odpowiedniego Activity. Każda koniecznie opatrzona adnotacją @ContributesAndroidInjector.

Na deser

I tak oto pozbyliśmy się metody inject() z aktywności 🙌. Ostatnie co trzeba wykonać to rozszerzyć nasze Actvity o DaggerAppCompatActivity.

Dziękuję Ci za przeczytanie tego materiału 😀 Jeżeli spodobało Ci się to o czym piszę, możesz sprawdzić więcej materiałów na blogu lub udostępnić znajomym. Będzie mi bardzo miło 😊

O mnie

Jestem młodym programistą, który dumnie dzierży wiele pasji takich jak bieganie czy piwowarstwo domowe. Jedną z nich jest także programowanie i o tym właśnie zamierzam tutaj pisać.

Zobacz więcej

Najnowsze posty

Kliknij i wspomóż mnie :)

Zostańmy w kontakcie

* Wymagane
Kliknij i wspomóż mnie :)
shop
Otwórz Sklep Play

Zachęcam Cię do odwiedzenia mojej strony na Google Play store i sprawdzenia wszystkich moich aplikacji.