Dependency injection

With Mikhail Mike Artemev software engineer at Truecaller 

In episode 40 of UTVECKLA, we dig into dependency injection together with Mikhail “Mike” Artemev, software engineer at Truecaller.

http://Simon%20Zachrisson%20och%20Tobias%20Dahlgren,%20medarbetare%20på%20Consid%20och%20podcastvärdar%20för%20UTVECKLA

Simon & Tobbe

Kontakta oss!

utveckla@consid.se

UTVECKLA #40: Dependency injection

In episode 40 of UTVECKLA, we dig into dependency injection together with Mikhail “Mike” Artemev, software engineer at Truecaller. Mike tells us about a massive migration project that he has been part of at Truecaller, why dependency injection was such a useful technique for that project, where Hilt and Dagger come into the picture and what challenges he has had to deal with along the way. Mike also explains the Hollywood principle of dependency injection and gives his recommendations for those who are considering a migration project of their own. The interview part will be in English. 

Highlights from the episode about dependency injection:

0.30 Hello and welcome. 

1.04 Hej och välkomna, Simon och Tobbe försnackar på svenska och snöar in på glögg, Feuerzangbowle och andra juliga drycker. 

5.47 Dagens ämne: Dependency injection! 

7.44 Welcome Mikhail “Mike” Artemev, from Truecaller! 

7.56 This is Mike’s job title.  

8.15 This is how Mike ended up at Truecaller. 

9.41 Mike tells us about his first project, which included hunting dogs. 

11.01 This is how Mike ended up in Sweden.   

13.31 This is Truecaller. 

15.46 About Truecaller’s team structures.  

17.24 Mike about Truecaller’s massive migration project from Dagger to Hilt. 

18.50 These were the reasons for the migration.   

22.10 What to do with old code?  

23.02 The main goal of the project. 

25.43 How Dagger uses the default Android components for handling dependencies. 

28.41 Mike underscores the fact that it is possible to do this. 

30.45 Benefits of dependency injection. 

31.28 Does Hilt have a graphic interface? 

33.06 Quick recap: What is dependency injection and how do you use it? 

36.53 What is reflection and what do you use it for? 

40.23 Does dependency injection make it more difficult to see what code has been used, where and when?  

41.52 Common hurdles when using dependency injection. 

42.38 Are there different types of dependency injections? 

44.44 Did the Hilt and Dagger frameworks help isolate the source code? 

45.30 Biggest challenges when implementing Hilt in the migration project. 

47.59 Numbers of systems that had to be rewritten during the project.  

49.44 Looking back on the project – was it a success? 

50.01 How long did the migration take? 

51.04 Will Hilt ever reach full coverage?  

51.46 Mike gives his best tips on how to move from Hilt to Dagger and use dependency injection. 

53.06 Thank you Mike!  

53.25 Simon and Tobbe sum up the discussion på svenska.  

55.04 Tack för det här året, och många, många tack till Tobbe som gjorde sin sista podd! God jul och gott nytt år! 

Ta del av fler poddavsnitt

UTVECKLA, Geographic Information System
2 min lästid
podd:
UTVECKLA

Geographic Information System med Jan Granlund, GIS-utvecklare på Consid

Podcast, UTVECKLA, om GIS – Geographic Information System – med Jan Granlund, GIS-utvecklare på Consid.

Branding for developers, UTVECKLA, 38
2 min lästid
podd:
UTVECKLA

”Branding for developers” with Fred Wikman, head of strategy, at Paradigm, Consid

Podcast, UTVECKLA, about branding for developers with Fred Wikman, head of strategy, at Paradigm, Consid.

Utveckla sommarspecial
2 min lästid
podd:
UTVECKLA

Sommarspecial av UTVECKLA

Sommarspecial av UTVECKLA-podden med programledarna Simon Zachrisson, Systemarkitekt och Tobias Dahlgren, Teknisk projektledare på Consid.

UTVECKLA avsnitt 36, Gabriella Åkesson, Stream Lead
2 min lästid
podd:
UTVECKLA

Stream lead med Gabriella Åkesson, stream lead och javautvecklare på Consid

Podd, UTVECKLA, om stream lead med Gabriella Åkesson, som är just stream lead och javautvecklare på Consid.

UTVECKLA, avsnitt 35, Devsecops
2 min lästid
podd:
UTVECKLA

DevSecOps med Joakim Bajoul Kakaei, Snyk

Podd, UTVECKLA, om DevSecOps med Joakim Bajoul Kakaei, senior software engineer på Snyk.

UTVECKLA, avsnitt 34, Designsystem med Frida Engman, UX-lead på Consid i Eskilstuna
3 min lästid
podd:
UTVECKLA

Designsystem med Frida Engman, UX-Lead på Consid

Podd, UTVECKLA, om designsystem med Frida Engman, UX-lead på Consid i Eskilstuna

Utveckla avsnitt 33, GraphQL med Volvo Cars
2 min lästid
podd:
UTVECKLA

Podd om Graph QL med Stephan Lonntorp, Volvo Cars

Podd om GraphQL med Stephan Lonntorp, software engineering manager på Volvo Cars. Hör honom berätta om Volvos GraphQL-resa.

Simon Zachrisson och Tobias Dahlgren i ett avsnitt av UTVECKLA
2 min lästid
podd:
UTVECKLA

Podd om inbyggda system med Andreas Irestål

Podd om inbyggda system med Andreas Irestål, Embedded Linuxutvecklare på Axis – övervakningskameraföretaget som ser till att ingen kan snatta ostört.

Ladda fler

Anpassa dina datapreferenser

Vi använder data för att analysera trafik på vår webbplats och dela information om användningen till våra analyspartners. Du kan läsa mer och ändra dina val på vår sida om datahantering och cookies. Läs mer på vår sida om datahantering och cookies.

Funktionella cookies känner igen dig på vår webbplats och kommer ihåg dina tidigare valda inställningar. Dessa kan inkludera det språk du föredrar, platsen du befinner dig på, lyssna på ljud eller titta på en video. En blandning av cookies från första och tredje part används.

Marknadsföringscookies används för att samla in data om hur vår webbplats används, vilka sidor som besöks oftast eller om du får felmeddelanden på vissa webbsidor. Ibland behöver vi information om din ålder, kön och intresse. Vi delar ibland vissa begränsade aspekter av dessa data med tredje part i reklamsyfte, till exempel Google. Informationen kan omfatta användarens plats, sökhistorik, YouTube-historik och data från webbplatser som fungerar med Google, och den används för att tillhandahålla aggregerad och anonymiserade insikter om användarbeteende på flera enheter.

Nödvändiga cookies är absolut nödvändiga för att webbplatsen ska fungera korrekt. Denna kategori innehåller endast cookies som garanterar grundläggande funktioner och säkerhetsfunktioner på webbplatsen. Dessa cookies lagrar ingen personlig information.

Prestandacookies är cookies som används specifikt för att samla in data om hur vår webbplats används, vilka sidor som besöks oftast eller om du får felmeddelanden på vissa webbsidor. Dessa cookies övervakar endast webbplatsens prestanda när användaren interagerar med den. Ingen av denna information kan användas för att identifiera dig. Allt är aggregerat och därför anonymiserat.