前段时间技术交流群里一个小伙伴突然问:
不知道你们有没有遇到过,我每次过年,亲戚都会问,你现在干啥呢?我就说自己是做app、做手机应用的,就你手机上这一个个小方块。(你说你是开发他们也不懂…)
亲戚们每次都会发出灵魂拷问:“那你能不能做个淘宝、微信啊?”
APP架构设计
几种主流架构设计对比:
MVC
MVC 简单来说就是将整个应用分为模型(Model)、视图(View)和 控制器(Controller)三个部分;
Android 本身的设计还是符合 MVC 架构的,但是经常会出现一些意想不到的问题,如内存泄漏等,这就导致了 MVC 的变种 MVP 的出现。
优点:
结构清晰,职责划分清晰;降低耦合;有利于组件重用;
缺点:
MVP
MVP 架构模式是 MVC 的一个变种,最大区别就是 View 层可以发起事件。
Presenter 层的出现帮助我们减轻了 Activity 的压力,结构上也较为清晰,但是 View 层将存在较多与 Presenter 沟通的代码,MVVM 架构就在这时候被提出来了。
优点:
结构清晰,职责划分清晰;模块间充分解耦;有利于组件的重用;
缺点:
MVVM
MVVM 架构模式可以说是Google “钦定”的 Android 开发未来的第一架构。
从Model-View-ViewModel 这个名字来看,它由三个部分组成,其中视图模型(ViewModel)其实就是 PM 模式中的展示模型。除了我们非常熟悉的 Model、View 和 ViewModel 这三个部分,在 MVVM 的实现中,还引入了隐式的一个 Binder 层,我们要完整的采用 MVVM 必须熟练的掌握 DataBinding 等基础组件。
优点:
结构清晰,职责划分清晰;模块间充分解耦;
在 MVP 的基础上,MVVM 把 View 和 ViewModel 也进行了解耦;
缺点:
Debug 困难,由于 View 和 ViewModel 解耦,导致 Debug 时难以一眼看出 View 的事件传递;代码复杂性增大;
MVx区别
在开始编程前,我们不应该低估一个应用程序的复杂性。
随着业务的不断发展,App 业务规模扩大,随之而来的是团队规模扩大,那就涉及到多人协作问题,每个移动端软件开发人员势必要熟悉如此之多代码,如果不按照一定的模块组件机制去划分,将很难进行多人协作开发。
各种问题也会接踵而至,混乱的数据存储、获取,灵活性不够高的代码,会成为我们项目中、后期最大的阻碍,任由其自由发展的后果就是,导致项目狼藉一片,我们将很难加入新的功能,只能对它进行重构甚至推翻重做。
搭建应用架构的方式多种多样,没有万能、一劳永逸的架构,它应该是不断迭代更新,适应业务的。
为了让大家搭建一个健壮的 Android 开发框架,深度理解模块化、层次化、控件化、组件化,将Jetpack和Mvvm应用到工作中,我邀请了国防科技大学研究生、全球首批Android开发者Allen老师为大家带来《从零开始手把手搭建APP框架》系列直播课程,让你在搭建app架构的同时,进行App启动速度的性能优化,快速成长为移动端大神!
11.27
Mvvm项目Gradle优化和本地仓库搭建
11.28
基于Jetpack的Mvvm高级架构逐步实现
11.29
App组件化和启动性能优化
▲报名训练营即可领取