APP 基本框架设计
一个良好的APP 基本遵循“简单”,“易用”,“高效”,“便维护”,“可扩展”基本也是从这几个原则出发,比较符合用户体验;同时也是比较符合我们开发人员设计程序的初衷,尽量低的耦合性和尽量高的可复用性,而一个设计良好的应用程序;必然需要有个比较规范和通用的设计框架,因此APP框架设计就变得尤为重要了.
APP框架搭建的设计;主要的核心思想还是分层思想,通常设计下,会包括以下内容:(如下图)
目前现在比较流行混合开发模式,而上图框架的设计内容是基于原生基础上设计,原生开发固然体验比较好,但是开发周期相对于网页通常比较长,对于混合开发模式;我们要考虑以下几个方面:
§ 视图(View):用户界面。
§ 控制器(Controller):业务逻辑
§ 模型(Model):数据保存
MVC模式的意思是,软件可以分成三个部分。它们的通信方式
1.View传送指令到 Controller
2.Controller完成业务逻辑后,要求 Model改变状态
3.Model将新的数据发送到 View,用户得到反馈.
所有的通信都是单向的。
1. 各个部分之间的通信,都是双向的。
2. View 与 Model 不发生联系,都通过 Presenter传递。
3. View 非常薄,不部署任何业务逻辑,称为"被动视图",即没有任何主动性,而 Presenter非常厚,所有逻辑都部署在那里。
4模型与视图完全分离,我们可以修改视图而不影响模型;
5可以更高效地使用模型,因为所有的交互都发生在一个地方——Presenter内部;
6我们可以将一个Presenter用于多个视图,而不需要改变Presenter的逻辑。这个特性非常的有用,因为视图的变化总是比模型的变化频繁;
7如果我们把逻辑放在Presenter中,那么我们就可以脱离用户接口来测试这些逻辑(单元测试)
简单的说,ViewModel就是View与Model的连接器,View与Model通过ViewModel实现双向绑定。
唯一的区别是,它采用双向绑定:View的变动,自动反映在 ViewModel,反之亦然.
谷歌推出了Data binding这个框架,Data Binding是一个 support包,因此与 Android M没什么关系,可以轻松的实现MVVM,Data binding解决了 Android UI 编程中的一个痛点,
官方原生支持 MVVM 模型可以让我们在不改变既有代码框架的前提下,非常容易地使用这些新特性。
其实在此之前,已经有些第三方的框架(RoboAndroid)
可以支持 MVVM 模型,无耐由于框架的侵入性太强,导致一直没有流行起来。
要求你的Android Studio版本是1.3+
在开始之前,请更新你的Support repository
到最新的版本
要使用DataBinding,android的构建插件gradle要求1.5.0-alpha1或者更高的版本。
Activity
怎么写。没有了之前的find控件,没有了setText,Activity
代码更加简洁明了
权衡利弊,我认为多模块Activity+多Fragment是最合适的架构,开发起来不是很复杂,app的性能又很高效。
当然。Fragment只是官方提供的灵活组件,请优先遵从你的项目设计!真的特别复杂的界面,或者单个Activity就可以完成一个流程的界面,使用Activity可能是更好的方案。
Android 的 Data Binding 框架还在 beta 阶段,Android Studio 对其内部支持也不是很完整,
进步的空间还很大。不过它被设计和开发的很好,将会改变 Android 应用开发方式(如果顺利的话)。