Dette er en demo applikasjon for å vise hvordan man kan bruke dependency injection for å bygge Android applikasjoner. Dette kan gjøre koden enklere å teste, refaktorere kode og bytte enkelte lag av applikasjonen.
Dependency injection er en programmeringsteknikk der man overlater oppgaven med å opprette objekter man avhenger av til noen andre. I stedet får man objektet man bruker for eksempel som argument i konstruktøren.
Eksempel uten dependency injection
public class MailService {
private final Mailklient mailklient;
public MailService() {
mailklient = new Mailklient("https://api.selskap.no/mail");
}
public sendMail(
String mottaker,
String tekst
) {
mailklient.sendEpost(mottaker, tekst);
}
}
Eksempel med constructor injection
public class MailService {
private final Mailklient mailklient;
public MailService(Mailklient mailklient) {
this.mailklient = mailklient;
}
public sendMail(
String mottaker,
String tekst
) {
mailklient.sendEpost(mottaker, tekst);
}
}
Eksempel med setter injection
public class MailService {
private Mailklient mailklient;
public setMailklient(Mailklient mailklient) {
this.mailklient = mailklient;
}
public sendMail(
String mottaker,
String tekst
) {
mailklient.sendEpost(mottaker, tekst);
}
}
Enkel Android applikasjon der brukeren kan taste inn et github brukernavn og få listet ut repositoriene til brukeren.
- Dagger: https://github.com/google/dagger
- Retrofit: https://square.github.io/retrofit/
- OkHttp: https://github.com/square/okhttp
- RxJava: https://github.com/ReactiveX/RxJava