android - Android MVVM按功能打包和按层打包哪个更好?

标签 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

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

最佳答案

基于 Android Architecture guide , 和 Clean 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

关于android - Android MVVM按功能打包和按层打包哪个更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54508117/

相关文章:

wpf - 如何编辑使用多重绑定(bind)和 string.format 的 WPF 文本框?

Android 架构组件 - 从房间中删除旧数据

java - 如何检索 "standard"Android 联系人

WPF TextBlock 动态粗体和斜体部分

android - 自动滚动图库小部件

mvvm - 在 WinRT 中使用 MVVM 的选定项目

android - 无法解析 : android. arch.persistence.room :runtime: 1. 0.0-alpha1

AndroidViewModel 与 ViewModel

java - 逐帧动画启动画面

android - 在同一设备上运行的单独版本?