前言
近期研究了几个主流开源框架的使用,有Retrofit(网络请求),RxJava(异步操作),GreenDAO(数据库操作),Fresco(图片加载),EventBus(事件通信),ButterKnife(资源绑定)。这些都是开发中常用的框架,现用上它们,配合MVP开发模式、基类、工具类搭建一个比较通用的开发框架,以便日后可在其基础上进行新项目的快速开发。
这个系列的博客计划会有9篇左右(底部有传送门),将介绍以上各个模块的要点与用法。介绍的过程中,会贴上个人认为比较好的学习地址。
Demo
简介
在该开发框架的基础上,简单写了个豆瓣电影例子,演示以上各模块的使用(内含详细的代码注释),配合对应的文章能更好地理解。
demo地址:https://github.com/LJYcoder/DevBase
demo大致的流程如下:
- 使用Retrofit+Rxjava请求豆瓣电影API,获取“正在上映”和“即将上映”的电影数据。
- 将数据通过两个Fragment以列表的形式进行展示,其中图片的显示使用Fresco进行加载。
- 点击列表项,使用GreenDAO将该电影插入到本地数据库中,并且刷新Toolbar右侧收藏的数量。
- 点击Toolbar右侧的收藏,进入“我的收藏”页面,使用GreenDAO从本地数据库中获取数据并展示。
- 点击列表项,则将该电影从数据库中移除并刷新列表展示,同时使用EventBus通知上个页面刷新Toolbar右侧的收藏数量。
- 以上过程中,使用ButterKnife进行视图绑定,按照MVP模式进行开发,穿插使用了各种基类、工具类。
demo运行图:
demo演示效果1
demo演示效果2
包结构
项目代码整体分为5个包,如下图所示:
demo包结构
其中,
app包:存放全局性文件。如Application类,常量类等。
model包:存放数据处理/模型的文件。如实体类,数据库相关文件,网络请求相关文件等。
presenter包:存放业务逻辑服务相关的文件。
util包:存放工具类。
view包:存放视图相关的文件。如activity,fragment,adapter,自定义控件等。
可以建多一个other包,用来存放Service,BroadcastReceiver,蓝牙,友盟等其他内容模块。
demo的gradle相关配置已按Android Studio3.0的要求进行更改,如果你使用的是as3.0以下的版本,需要调整下gradle配置。
登录 | 立即注册