开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情
移动应用架构
移动应用架构是什么?
移动架构是一个关于如何构建移动应用的路线图, 由各种规则和技术组成. 一个经过深思熟虑的移动架构可以通过遵循行业标准来快速开发应用程序的功能, 并确保可扩展, 可维护和高质量的最终产品.
分层
在基本层面上, 移动应用架构由三层组成: 表示层, 业务层和数据层.
表示层
表示层由UI组件、用户界面组成, 负责应用程序的外观和感觉. 它负责用户体验, 通过利用按钮, 链接, 视频, 图片等为最终用户提供与应用程序的互动方式. 展示层受产品的品牌指南和战略的影响很大.
业务层
业务层负责将数据转换为对终端用户有意义的方式. 它包括与数据操作, 缓存, 验证, 记录, 错误和异常处理等相关的流程和规则. 业务层可以在用户的设备上, 也可以在服务器上, 或者两者都有, 这取决于需求.
数据层
数据层负责管理数据访问和交易. 这一层可以进一步划分为两层. 存储库和网络. 存储库层负责通过API接口获取数据, 并在需要时实现本地持久化策略. 网络层负责通过网络通信提供API的路由和处理网络错误.
架构
正确的移动架构可以帮助解决许多移动开发的挑战, 并可以导致可扩展和可维护的移动应用. 这些架构允许责任分离, 并增加模块化, 灵活性, 可测试性和可维护性. 下面是广泛使用的移动应用架构模式, 可以帮助解决应用开发中的挑战.
MVC
MVC是最熟悉的架构方法之一. 它将移动应用程序分成三层, 每层有各自的职责. 视图负责渲染UI元素和观察模型的任何数据变化. 可能有多个视图可以被映射到控制器上. 控制器处理用户行为, 通过模型处理数据, 并根据模型更新UI. 模型根据业务规则来管理数据操作.
MVP
MVP类似于MVC. 它用Presenter代替了Controller. 视图负责渲染UI元素和观察模型的任何数据变化. 视图与Presenter有一对一的映射关系. Presenter处理用户的操作, 通过模型处理数据, 并根据模型更新UI. 模型根据业务规则来管理数据操作. 与MVC相比, 模型和视图在MVP中不直接交互. 从而可以更好地解耦.
MVVM
MVVM是移动架构中相对较新的方法. 在这种方法中, 模型和视图的行为与MVC和MVP大致相同. 多个视图可以被映射到ViewModel上. MVVM通过Model来处理用户行为和数据, 然而从Model到ViewModel和ViewModel到View的数据流是由观察者处理的, 与MVC和MVP相比, 它提供了更大的解耦.
VIPER
Viper是相对较新的架构模式, 主要用于iOS应用开发. 与广泛用于iOS应用的MVC相比, 它提供了更大的责任分离. 在这个架构中, 视图负责渲染UI元素. Presenter处理UI输入, 并持有UI逻辑和触发UI变化. Interactor包含业务逻辑. Router负责导航, Entity负责管理交互者使用的数据对象.
关键不同
推荐架构 — MVVM, VIPER
移动架构在持续进化. 选择移动架构的关键要求我们考虑以下重要标准.
可维护性/延伸性
应用组件应易于修改, 以便进行错误修复和性能提升. 它应该允许快速实施变化, 以支持任何新的增强功能, 以支持新的平台功能或业务需求.
可测试性
应用架构内的各种应用组件应易于单独测试, 这可以导致减少错误的数量和更好的可靠性.
可重用性
应用架构应该是模块化的, 并应支持各种组件的可重复使用性, 以加快功能开发和任何未来的重新设计.
安全性
应用架构应该是稳健的, 应该能够保证用户数据的安全.
可伸缩性
应用架构应该是可伸缩的, 以便能够支持各种功能的并行开发.
牢记上述标准, 有两种架构真正脱颖而出. MVVM和Viper. 由于ViewModel组件的开箱即用支持, MVVM可以非常容易地被Android采用. Viper被广泛用于iOS应用开发, 它比MVVM更进一步地分离了关注点. 这两个都是很好的选择. MVVM的关注点分离程度较低, 可以减少开销, 但是Viper由于关注点分离程度较高, 会提供更好的可测试性.
开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 14 天,点击查看活动详情