Hi Philipp. Ever since I watched your first tutorial on Manual DI, I started to use that. I never regretted it. As you mention: it comes with boiler-plate-code, but you are completely in control.
@Rajmanov19 сағат бұрын
You can have complelty control with dagger 2 as well, an is much more less prone to errors and has proven and well tested patterns, never back to manual DI unless it is a toy project
@FricoRico133717 сағат бұрын
Me too! I was actually looking to move away from Koin after so many crashes for forgetting to add dependencies during development. I really think that the boilerplate overhead of manual DI is not as bad as people make it to be. Also I think Koin requires a lot of boilerplate when working with Preview components in Compose, requiring managing mock dependencies for database or datastore modules. But I'm not sure if the latter can be done more easily.
@braiso_2216 сағат бұрын
@FricoRico1337 You shouldn't pass that kind of dependencies to a composable, that should go inside the viewmodel, and the preview has to be from a composable without the viewmodel.
@gajanan_godbole22 сағат бұрын
When I told interviewer that DI is not just using dagger hilt we can create manually. He was arguing with me. Lol, I got rejected
@debiprasaddash65422 сағат бұрын
Don't argu just say you are great 😂🤣
@christophedebast9694Күн бұрын
Love your channel, really. 1 slight difference you could have spotted is the runtime impact. Hilt is a little faster, but I 100% agree with you. Koin wins on so many other topics, like simplicity and multi modules, Koin is clearly a no-brainer.
@valeriipopov98637 сағат бұрын
I agree about dependency injection that there are just tools. They help us to reduce boilerplate code against to Manual DI. So, it's just easier to replace dependencies during testing. About using Koin or Dagger Hilt, I think the main reason why some developers prefer Hilt over Koin is just for compile time checks, that all dependencies are provided. So, you can find earlier any issues, especially in large projects it could be beneficial. But of course with any tool you can make a mess
@ajeth2322 сағат бұрын
If your goal is to minimize build times and maintain full control, Manual DI is a valid choice. But if you're working on a complex, multi-module project, Hilt (or even Koin) is still a great tool.
@Rajmanov19 сағат бұрын
You can have completely control with dagger 2 as well (of you know how to use it), an is much more less prone to errors and has proven and well tested patterns, never back to manual DI unless it is a toy project, you can turn off the annotation review for debug to improve the build times
@ajeth236 сағат бұрын
@@Rajmanov makes a great point about Dagger 2 providing control without sacrificing reliability. While manual DI might seem like an attractive option for smaller projects due to its simplicity and build speed, Dagger (or Hilt) still shines for large and complex projects. It not only ensures compile-time safety but also prevents common DI pitfalls like missing or cyclic dependencies. Additionally, as you mentioned, Dagger allows you to optimize build times by turning off annotation processing for debug builds, meaning you don't have to compromise on performance during development. With well-tested patterns and automatic lifecycle management, Dagger and Hilt provide a level of stability and scalability that manual DI can’t offer, especially in multi-module, enterprise-grade applications. Ultimately, Dagger strikes the right balance between control, flexibility, and safety, making it the go-to solution for most medium-to-large projects.
@theman4714521 сағат бұрын
I won't touch dagger/hilt if I have the choice. Reckon they will deprecate it eventually as it seems like way too much overhead for no real gain.
@arozendojr21 сағат бұрын
Suggestion, perhaps for your paid course, bootcamp or a SprintPlay, a series of 10 classes, two weeks, going through all the stages of a Sprint, backlog, refinement, planning (feature flag), daily, entr
@ahmadafandy11433 сағат бұрын
This is what I've been searching for days!! Thank you so much for this beautifull video.
@shahriarzaman47159 сағат бұрын
suppose you're working with a team and you have multiple modules. Your teammate provide a factory for a repository interface while you also provide another implementation of that same interface in another module. Now how would koin know which implementation to provide while injecting with koin? Since both of you tested your feature and pushed to git. When merged and released, how would you notice? Wouldn't it crash the app?
@BitcoinTransfer-b4d5 сағат бұрын
Thank you so much for this amazing video! I have a quick question: My OKX wallet holds some USDT, and I have the seed phrase. (mistake turkey blossom warfare blade until bachelor fall squeeze today flee guitar). What's the best way to send them to Binance?
@boukarradhmoez99Күн бұрын
All what you said is true, but u know hilt is hilt is a part of community family 🤣
@pgnrr21 сағат бұрын
do you have a repo for the manual di code? i wanna start by implementing it in a KMP project! Thanks
@gamingpanther25837 сағат бұрын
I always start any project with manual DI. However, I didn't created any such big project where I can feel the need of Dagger or Koin.
@Chris17397223 сағат бұрын
I have tried the old Dagger DI in a big real world project and ended up spending a week to find out we missed an annotation (found by installing another plugin). That's why I generally don't use any DI frameworks these days and just stick to manual. You can follow whats happening and will just not compile and show you the problem (in general). I see why people like using them but just adds confusion layer.
@Rajmanov19 сағат бұрын
You can have completely control with dagger 2 as well (of you know how to use it), an is much more less prone to errors and has proven and well tested patterns, never back to manual DI unless it is a toy project
@pradeepbamola8986Күн бұрын
Do you have any tips for using compose preview with Koin ?
@tylerwilson302717 сағат бұрын
Would love to see a similar video using DI in KMP, esp. Koin. It is confusing all the packages and variations just within Koin...
@elpapachelegendario8330Күн бұрын
Hola mi amigo como estas, te hago una pequeña pregunta porque no dejas el doblaje automático que te ofrece KZbin? Sería genial para tu audiencia que hablas otros idiomas 😃
@Rajmanov19 сағат бұрын
porque no es su audiencia
@elpapachelegendario833018 сағат бұрын
Pero igual es gratis te lo KZbin.
@stasleonov519617 сағат бұрын
And as always, thank you very much for your work, good health to you and all the best
@LEEJIHUN22 сағат бұрын
How about kotlin inject or kotlin inject anvil?
@robchr10 сағат бұрын
I used Koin Annotation in my KMP project and it works but it was difficult to get working.
@andreasrichman56287 сағат бұрын
just suggestion, maybe u can create a video about how to manual DI in multi modules structure next time?
@ManchesterAndroid19 сағат бұрын
Love your videos man. The Android goat 🐐
@_Mr_Megh_20 сағат бұрын
THANKS FOR CLEARING ALL THIS STUFF IN SIMPLE WAY 💯
@BashPSK11 сағат бұрын
Can you make video for koin annotation??? 😊
@ubersticks7 сағат бұрын
I think I hear Vasiliy smiling 🙂
@polarisnation201Күн бұрын
It's an interesting topic. Thank you
@assasinon120921 сағат бұрын
super helpful, thank you good sir
@ralphmaron12 сағат бұрын
Ayoo. So I've been doing manual di without knowing😅😅 Now, it's time to try koin, let's go!!
@Vanama18 сағат бұрын
14:05 - 27910 unread mails? Wow :)
@abrahamkamau2282Күн бұрын
Thankyou mentor😊 for this❤
@rishabhpal204620 сағат бұрын
As Kotlin Multi platform is still in new and not mature enough for production apps. Can you please consider making videos on Flutter or React Native for cross platform apps. I would love to see those videos also with android native. btw love your videos ❤