【转】一个Android项目搞定所有主流架构-1.项目介绍和基本MVC架构示例
http://www.jianshu.com/p/798536fb91c5
项目启发来自谷歌的同类框架项目
https://github.com/googlesamples/android-architecture
然后找了个自己练手的App做了个更简易好理解版本的同类项目,开了个超级大坑~
https://github.com/boredream/DesignResCollection
欢迎star项目以及follow我,项目将持续更新!!!
DesignResCollection
提供同一个App的不同架构实现,对其进行对比分析,方便大家选取使用
为什么要做这样一个项目
Android 的框架多用MVC模型进行开发,而其中的Activity经常承担了大量的V和C的工作,既处理逻辑又处理UI。
因此Activity中很容易聚集大量代码,造成结构复杂混乱、测试维护困难等诸多不便。
这个项目就是为了帮助解决这个问题的。其中将提供一个相同的应用程序,然后使用不同的框架实现之。
您可以使用本项目中的示例代码作为参考,或者直接作为项目的架子在此之上继续开发自己的项目。
本项目中,主要关注的重点在于代码的结构框架、测试以及可维护性。
但是要注意,这里提供了不同的架构,各自有自己的优缺点。因此在选取时要根据自己的需要选择对应的框架结构。
比如你只是一个简单的App,不需要单元测试,功能UI都比较少,那直接MVC结构即可。
代码示例 [持续开发中...]
显示设计网站中收集来的资源的一个应用DesignResCollection,不同结构对应不同的[_结构后缀]。
比如基本的MVP结构就是 DesignResCollection_MVP。不同结构的具体介绍请查看对应文件夹中的README.md
已开发完成的示例
- DesignResCollection_MVC/ - Model-View-Controller 结构。
待开发的示例
- DesignResCollection_MVP/ - Model-View-Presenter 结构。
- DesignResCollection_MVP-Dagger2/ - 基于 Model-View-Presenter 结构,添加Dagger2框架。
其他相关示例
- DesignResCollection(ing...) - 完整App代码,不断丰富完善中,实现一个最终完整版。本项目中的示例是基于此项目做了功能和页面上的精简,便于演示不同代码结构。
- DesignCollectionCloudEngine - 部署在LeanCloud上的云代码项目,用于定时爬取数据保存到LeanCloud中为应用提供数据来源的。
开发计划
2016.8.17~
DesignResCollection_MVP/ - Model-View-Presenter 结构。
通用依赖框架
- 使用LeanCloud作为后端服务,比较简单,无需自行开发。
- 使用LeanCloud的Restful-API接口。(不用LeanCloud的Android SDK,更贴近于实际开发中用开发接口文档的情景)
- 网络框架部分使用Retrofit2.0 + RxJava。
- 图片使用Glide。
- 代码助手Model常见工具类、功能等都封装到了这个依赖Model中,一来为了方便,二来让注意力更集中在项目框架结构上。
到底使用哪种框架使用在我自己的app中?
每个框架示例中都有一个README,你可以先查看下每种的特点。
最终项目里还会对比下所有框架的优缺点列出来,方便你根据自己具体情况进行全面的比较选取。
应用截图
使用
在Github中下载~ 解压~ Open对应框架项目的文件夹
【转】一个Android项目搞定所有主流架构-1.项目介绍和基本MVC架构示例的更多相关文章
- 转:C4项目中验证用户登录一个特性就搞定
转:C4项目中验证用户登录一个特性就搞定 在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用 ...
- 企业sudo权限规划详解 (实测一个堆命令搞定)
简述问题: 随着公司的服务器越来越多,人员流动性也开始与日俱增,以往管理服务器的陈旧思想应当摒弃,公司需要有 更好更完善的权限体系,经过多轮沟通和协商,公司一致决定重新整理规划权限体系 ...
- 一个PHP文件搞定微信H5支付
/ 更新于 2018-07-02 / 8 条评论 过年期间也坚持要撸码啊接着给博客除草,在这个小除夕是情人节的一天,祝大家新年快乐,情人节能够顺利脱单~~~ 回归正题,这篇文章介绍一下微信H5支付, ...
- 我和小美的撸码日记(3)之中的一个句话搞定MVC表单页数据绑定与提交
另外献上在<线体验Demo地址>希望大家也能从中得到一些启示. 地址:http://121.40.148.178:8080/ . username:guest,password:12345 ...
- Linux服务器其中一个磁盘满了怎么办?在不做磁盘扩容的情况下,一个软连接就搞定。
适用环境要求:Linux系统及服务器.有管理员权限.存在多余空间的磁盘例如下图中"/home"在磁盘sda5中与"/"不属于同一块磁盘: 1.首先转移正在使用的 ...
- MVC4项目中验证用户登录一个特性就搞定
在开发过程中,需要用户登陆才能访问指定的页面这种功能,微软已经提供了这个特性. // 摘要: // 表示一个特性,该特性用于限制调用方对操作方法的访问. [AttributeUsage(Attribu ...
- [转]MVC4项目中验证用户登录一个特性就搞定
本文转自:http://www.mrhuo.com/Article/Details/470/A-Attribute-For-MVC4-Project-Used-To-Validate-User-Log ...
- android studio: 一个Android studio 3.3.2 无法创建新项目的问题
记录一个AS无法创建新项目的问题. 今天想写一个测试Demo,点击上面的“Start a new Android Studio Project” ,填写完包名和项目路径后,点“Finish”, AS无 ...
- 全能无线渗透测试工具,一个LAZY就搞定了
近来一直在研究无线安全方面的东西,特别是在无线渗透测试这块,每次渗透测试时总要来回不停的切换操作和挑选利器,很是麻烦.就想看看是否可以有一款功能全面的集合型工具. 正所谓功夫不负有心人,还真有这么一个 ...
随机推荐
- (转)netstat 命令详解
netstat 命令详解 原文:https://www.cnblogs.com/xieshengsen/p/6618993.html netstat命令是一个监控TCP/IP网络的非常有用的工具,它 ...
- 命令行编译java项目
命令行编译java项目 项目名: testproj 目录 src -> cn -> busix -> test bin lib 编译项目 cd testproj javac -d . ...
- HTML的注释方式对JSP的JSTL不管用
<fmt:parseNumber var="y" integerOnly="true" type="number" value=&qu ...
- bootstrap清除数据源
下拉框使用动态数据源,当下拉框触发change事件时,想让下拉框改变数据源,加了个if判断 $('#@idForCostCategory').change(function (event) { if( ...
- Ling之select
select用法: 1.Dictionary<string, string>转json Newtonsoft.Json.JsonConvert.SerializeObject(dicSub ...
- mysql应用学习-在cmd命令窗口下创建数据库和表
运行以下操作,请确认您已经正确安装和配置了mysql. 首先要运行cmd.exe,进入命令窗口. step1. 进入MySQL monitor 如果您已登录mysql,可直接进入step2;若未登录请 ...
- mysql应用学习-windows(64位)安装和配置mysql(5.6.20)
下载安装包MySQL Installer 下载地址1:http://dev.mysql.com/downloads/windows/installer/ 说明:官网当前版本 5.6.22:虽然只有32 ...
- Advanced .NET Debugging: Managed Heap and Garbage Collection(转载,托管堆查内存碎片问题解决思路)
原文地址:http://www.informit.com/articles/article.aspx?p=1409801&seqNum=4 Debugging Managed Heap Fra ...
- 字符串(1)——Detect Capital
Given a word, you need to judge whether the usage of capitals in it is right or not. We define the u ...
- VMware 安装提示缺少MicrosoftRuntime DLL 问题解决办法
VMware 安装提示缺少MicrosoftRuntime DLL 问题解决办法 刚刚安装VMware失败了试了好多办法,在这总结一下. 下面是程序的截图 这是报错信息 网上的解决方法: 当出现安装失 ...