使用 Hilt 注入 LiveData 实例 - 好还是不好?

Fil*_*ark 5 android dependency-injection mvvm clean-architecture dagger-hilt

问题

切入正题:在 Android 开发中,使用 Hilt 将 (ActivityScoped) LiveData 实例注入 ViewModel 以便观察多个片段的实时数据是好还是坏做法?

这种方法有什么重大缺点吗?是否有更好的方法来实现相同的行为?我们可以考虑将部分或全部代码从片段视图模型移动到活动视图模型,因为依赖关系表明这是一种更好的方法,但这最终会使活动视图模型变得相当大。

背景

还有一些背景知识,以防这有助于回答这个问题:

我一直在开发一个 Android 应用程序,其中我们使用 Hilt 进行依赖项注入、Android 的 MVVM 架构组件以及我们对干净架构的解释,这或多或少基于本文: https: //www.raywenderlich.com/3595916 -android 入门的干净架构教程

我们的应用程序包含两个活动和几个片段,每个活动都分配有自己的视图模型。最近,随着应用程序的增长,代码库变得有点混乱,部分原因是许多片段(及其视图模型)依赖于相同的实时数据。注入视图模型的存储库和数据源通常是单例的,因此数据共享不是问题。

然而,所发生的情况是,我们在一个活动中保留对所有视图模型的引用,并且许多片段正在从彼此的视图模型中观察 LiveData,以便更新它们的视图。这感觉像是一种次优的方法,我们很快就会进入重构季节,这将使我们有机会解决这个问题。