anvil
A Kotlin compiler plugin to make dependency injection with Dagger 2 easier. (by square)
koin
Koin - a pragmatic lightweight dependency injection framework for Kotlin & Kotlin Multiplatform (by InsertKoinIO)
Our great sponsors
anvil | koin | |
---|---|---|
8 | 16 | |
1,258 | 8,617 | |
1.0% | 1.0% | |
9.5 | 9.2 | |
6 days ago | 2 days ago | |
Kotlin | Kotlin | |
Apache License 2.0 | Apache License 2.0 |
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
anvil
Posts with mentions or reviews of anvil.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-02-06.
-
Refactoring our Dependency Injection using Anvil
Handling DI at scale can be a challenging task in avoiding circular dependencies, build bottlenecks, and poor developer experience. To solve these challenges and make it easier for our developers, we adopted Anvil, a compiler plugin that allows us to invert how developers wire, hook up dependencies and keep our implementations loosely coupled. However, before we get into the juicy details of using this new compiler plugin, let's talk about our current implementation and its problems that we are trying to solve.
-
Having both Dagger and Hilt at the same time? 🤔
I would recommend checking out Anvil for multi-module setup as it can provide an easier migration path than Hilt while also providing similar features.
-
Whetstone: A DI framework for Android that simplifies working with Dagger 2 using Anvil
In terms of of what Anvil is I'd really recommend reading the README It's a lot more flexible than Hilt and provides a code generation hook so if you have a codebase specific DI pattern you can also set that up to be auto-generated with a custom annotation if you desire.
-
Anvil, generating factories without kapt, and module structure.
Recently I've been looking into Anvil as an alternative to Dagger and realised that it can handily generate factories for you without kapt. That brings some exciting potential for build time improvement so I was eager to try it out. However very quickly I got stuck.
-
Multiplatform dependency injection libraries equivalent to Dagger/Anvil
I'm currently using Dagger and Anvil for my DI needs. It's been working really well, especially around what Anvil permits in terms of multibindings defined on the type declaration rather than in a module. For example:
-
Toying with Kotlin's Context Receivers
Have you considered something like Dagger + Anvil (https://github.com/square/anvil) ? It works well enough that it gets out of your way. Is it doing insane things in the background at compilation time ? Absolutely. But it's worth it. And to save time in debug, you can shim in dagger-reflect to avoid the cost of having to run annotation processors.
-
N26 Path To Anvil
For more details, check the official documentation: Anvil Dagger Factory Generation.
-
N26 Path to Anvil
And finally, testing: Anvil offers a replace module feature that is handful to provide new dependencies during tests. For that, we create helper modules called testing and we provide fake dependencies of those replacing the production modules. Developers that include the testing in their test classpath can automatically interact with our testing utilities (or create their own, if required). To be completely honest here, it is more of an ongoing process.
koin
Posts with mentions or reviews of koin.
We have used some of these posts to build our list of alternatives
and similar projects. The last one was on 2023-03-21.
-
Kotlin Multiplatform and Swift - Overcoming Interoperability Challenges for Multiplatform Development
Let's see how we can use Koin to achieve Dependency Injection (DI) and incorporate a third-party iOS Swift SDK in a KMM project. Koin supports KMM development, making it the ideal choice for KMM projects.
- [Typescript] Quelqu'un peut-il suggérer une bibliothèque d'injection de dépendance simple pour TypeScript / JavaScript?
-
Best Practices When Splitting Compose Functions Into Separate Files
Might want to tell koin that : https://insert-koin.io/
-
KVision 6.0.0 is released
New modules allow you to easily build KVision apps with the Ballast opinionated application state management framework. You can see how Ballast (together with Koin) can help you design your application architecture in the new todomvc-ballast example.
-
Multiplatform dependency injection libraries equivalent to Dagger/Anvil
I started looking into using Kotlin/JS, and hopefully reusing a bit of code that I have, which is using Dagger and Anvil - which of course are JVM only. So I've been looking for other solutions, namely Koin and Kodein. Koin's multibinding support is... not really amazing (e.g. here, and while Kodein does support multibinding, it doesn't seem to support things like that at the declaration site - everything needs to be specified in a "DI container" (module).
-
Best libraries for Android Developers
Koin
-
Compose - NavHost recomposition multiple times
It's a Koin issue, not compose. Discussed here https://github.com/InsertKoinIO/koin/issues/1079
-
Do we really need to use Dependency Injection Framework?
Now I will finish up saying Hilt is just an opinionated way to dependency injection on Android, but there are simpler frameworks out there such as Koin or Kodein that can help take away a lot of the troubles that can come when you try to make your own framework. Just know that most other frameworks tend to be runtime injection instead of compile time injection like Hilt, which can be helpful to know at compile time if you are missing a dependency in your graph as opposed to runtime when its out in the wild.
-
Can someone suggest a simple dependency injection library for TypeScript/JavaScript?
I've been using Angular a lot and I like how it works. I'm also a huge fan of koin for kotlin.
-
A Kotlin programmer's approach to microservices?
for injection, I suggest Koin (https://insert-koin.io/)