Android MVVM 按功能打包或按层打包哪个更好?
Which is better for Android MVVM package by feature or package by layer?
另一个 "which is better" 问题,我知道这些是非常主观的。我对更好的定义是:
- 被最好的开发团队使用
- 最适合单元测试
- 最模块化/最容易构建产品应用程序
- 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 蓝图示例的链接,这在我看来是矛盾的。
我认为这取决于项目规模。同样在不同的公司团队使用不同的方法。
I prefer to use in a small project second type of package managing.
如果您想重用 ModelView 组件,只需将它们保留在功能包中即可。也许这种类型:
/db
feature1/
feature2/
/model
feature1/
feature2/
/ui
/persistence
feature1/
feature2/
基于Android Architecture guide, and on 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
另一个 "which is better" 问题,我知道这些是非常主观的。我对更好的定义是:
- 被最好的开发团队使用
- 最适合单元测试
- 最模块化/最容易构建产品应用程序
- 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 蓝图示例的链接,这在我看来是矛盾的。
我认为这取决于项目规模。同样在不同的公司团队使用不同的方法。
I prefer to use in a small project second type of package managing.
如果您想重用 ModelView 组件,只需将它们保留在功能包中即可。也许这种类型:
/db
feature1/
feature2/
/model
feature1/
feature2/
/ui
/persistence
feature1/
feature2/
基于Android Architecture guide, and on 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