我参与了一个用于配置物理设备的工具应用程序,目前它支持一个设备。它使用Android
和RxJava
以标准Dagger
编写,并未实现架构模式。
该应用应该能够支持3个额外的设备。用户可以在设备之间进行选择,具体取决于设备,功能会有所不同。这意味着,在某些视图中需要显示其他选项,而对于某些设备,需要删除选项。
我需要重构这个应用程序,以使其可以增加其他设备,并使其可测试,但我还不确定如何为即将发生的更改构建应用程序。
作为一种架构手段,我想使用MVVM
或MVP
,但我还没有确定哪种模式更适合我的需求,因为我并不喜欢这两种模式。
这就是我打算继续进行的方式:
Activity
时,DeviceConfiguration会检查当前选择的设备,并为View / Presenter / ViewModel设置正确的设备。这就是我的想法,但这是一个很好的结构来处理不同设备的类似功能吗?
是否可以使用这种设置测试应用程序,还是为相应的设备创建自己的活动/布局更好?我特别不确定这是否适用于MVVM
,如果不仅数据,而且布局内的一般内容和视图需要动态更改。
我正在寻找良好的做法,以使应用程序更清洁,更易于测试,任何建议都表示赞赏。
答案 0 :(得分:2)
我建议您查看Android Architecture Blueprints存储库。它由Google提供,您可以使用/不使用Dagger2和RxJava的MVP和MVVM架构实现示例。您还可以查看Mosby库。如果您是初学者,那么IMO可以更好地学习一些经过验证的实施,而不是过度使用您的解决方案。
答案 1 :(得分:0)
重新开始学习并使用最佳实践重构旧项目甚至开始新项目是一个重大决定。
我建议你看看我使用 MVP , Dagger , RxJava ,完成的示例项目改造并且还包含不同类型的模拟测试。
我希望它有所帮助:)