科特林与匕首2

时间:2018-09-26 10:05:45

标签: android dependency-injection kotlin dagger-2

我们正在仅使用Kotlin语言开发新的Android应用。

我们要使用依赖注入框架。 Dagger 2是基于Java的框架。据我所知,谷歌没有基于Kotlin的DI框架。

  1. 建议将Dagger 2与Kotlin一起使用吗?
  2. 我们什么时候可以期望Google提供基于Kotlin的DI框架?如果是这样,可以迅速与Dagger 2向后兼容吗?

4 个答案:

答案 0 :(得分:6)

  1. 是的,您可以将Dagger 2与Kotlin一起使用。 Kotlin正在使用JVM,并且可以与Java完全互操作。

  2. 我还没有听说过这样的计划。只需在Kotlin项目中使用Dagger 2,您就会发现它工作得很好。

答案 1 :(得分:2)

  1. 您可以将Dagger 2与Kotlin一起使用,应该不会有任何问题。
  2. 我不确定Google是否会开发它,但是如果匕首兼容性不是问题,那么就有一个用Kotlin编写的现有DI框架Koin

答案 2 :(得分:1)

Dagger 2应该与Kotlin一起使用。我们知道Kotlin用户有一些粗糙的边缘,并且我们希望对其进行平滑处理。

答案 3 :(得分:0)

Koin和kodein不是DI容器,而是服务定位器。如果您认为只需要DI容器而Service Locator对您不利,那么Koin / kodein可能不是一个好选择。这是你的选择。 可以在这里What's the difference between the Dependency Injection and Service Locator patterns?看到区别。

杰克·沃顿(Jake Warton)的谈话也说明了同一点

  

DI模式>服务查找模式。代码生成样板   用于手动DI。验证了编译时的完整性。快于   运行时。

https://twitter.com/JakeWharton/status/908419644742098944?ref_src=twsrc%5Etfw%7Ctwcamp%5Etweetembed%7Ctwterm%5E908419644742098944&ref_url=https%3A%2F%2Fmedium.com%2Fmedia%2Ffc6b4ad54c27f761700f5726ed92cfd1%3FpostId%3Df5bc5eaa308e