应该如何在多模块 Android 项目中使用 Anvil

Max*_*lov 7 android square dagger-2 anvil-di

我将在我的项目中使用Anvil

https://github.com/square/anvil

但我无法弄清楚它所需的使用模式是什么?我应该有一个全局AppScope:core并将每个模块的所有绑定合并:feature到其中吗?因此,每个:feature模块都将其绑定添加到AppScope中,因此每个模块都:feature知道有关任何其他模块的一切:feature。这听起来很混乱,对吗?

我没有看到任何有依赖范围的可能性。例如,MyFeatureScope依赖于AppScope。因此,只有特定:feature模块实际上将其绑定贡献到MyFeatureScope中,但它们仍然可以使用AppScope中的通用绑定。

  • Anvil是否支持其范围之间的此类依赖关系?

  • 我应该有一个全局AppScope吗?或者我应该有一组独立的作用域 - 每个:feature模块一个 - 可以以某种方式依赖于带有“公共绑定”的AppScope

Dmy*_*iev 0

最终由您决定如何构建您的应用程序。Anvil 支持多个范围和组件,就像普通的 Dagger 2 一样。

Anvil 是否支持其范围之间的这种依赖关系?

范围并不相互“依赖”。组件(和子组件)可以。Anvil 确实支持这些依赖项。

我应该拥有一个全局 AppScope 吗?或者我应该有一组独立的范围 - 每个 :feature 模块一个 - 可以以某种方式依赖于带有“公共绑定”的 AppScope ?

做对你来说最有意义的事情。在我的应用程序中,我使用不同的组件来分隔纯 Kotlin 类和 Android 相关类。

如果您希望我详细说明或演示代码示例,请告诉我。