对于Android MVVM,按功能或按包进行打包哪个更好?

时间:2019-02-03 22:13:22

标签: android mvvm android-architecture-components

另一个“哪个更好”的问题,我知道这些都是主观的。我更好的定义是:

  1. 被最好的开发团队使用
  2. 最适合单元测试的
  3. 大多数模块化/最容易构建产品应用
  4. Google的建议(这是我最困惑的地方)

所有Android蓝图均按功能使用:

https://github.com/googlesamples/android-architecture

/tasks
/addedittask
/taskdetail

和所有体系结构组件样本均逐层使用:

https://github.com/googlesamples/android-architecture-components

/db
/model
/ui
/persistence

我很困惑,因为在Architecture Components网站的底部,它实际上具有指向Android MVP和MVVM蓝图示例的链接,在我看来这是矛盾的。

2 个答案:

答案 0 :(得分:1)

我认为这取决于项目规模。同样在不同的公司中,团队使用不同的方法。

  

我更喜欢在软件包管理的小型项目second type中使用。

如果要重用ModelView组件,只需将它们放在功能包中。也许是这种类型:

/db
    feature1/
    feature2/
/model
    feature1/
    feature2/
/ui
/persistence
    feature1/
    feature2/

答案 1 :(得分:0)

基于Android Architecture guideClean Architecture,我建议采用这种方法

data/
    model/
    remote/
    local/
    Repository
domain/
    usecases/
        GetUserListUseCase
presentation/
    screen1/
        screen1Activity
        screen1Fragment
        screen1ViewModel
    screen2/
        screen2Activity
        screen2Fragment
        screen2ViewModel
core
    common/
    di/

更多内容:https://www.toptal.com/android/android-apps-mvvm-with-clean-architecture