做了有几个APP了,总结下目前的架构重构, 正好有个android手机记步功能,那就写篇文章记录个人在开发一个App项目过程中的一个基本流程, 以及所采用的架构, 技术的运用。
1、架构选择
MVP架构是目前开发AndroidApp最火的架构, 可能MVVM更加吸引人, 但是MVP更加成熟且易于上手. 相比与Activity/Fragment包揽一切的传统开发架构又更加灵活, 便于产品的更新迭代。
mvp-architecture
- Model
- 对外提供业务数据API.
- 内部实现本地数据, 网络数据的存取等.
- 只有Presenter可以访问, 与View隔离
- Presenter
- 持有View对象, 对View进行操作
- 持有Model层提供的数据接口对象, 可通过依赖注入解耦此部分.
- 从数据接口对象中获取数据并处理, 更新View.
- View
- UI层, 包含所有UI相关组件.
- 持有对应的Presenter的对象, 可通过依赖注入解耦此部分.
- 由Presenter来负责更新UI.
2、开源库选择
快速开发一个项目, 且抱着不重复造轮子的思想, 选择一些开源库辅助开发是很必要的. 当然, 同类的开源库可能很多, 选择上可能更多是个人喜好和使用习惯的问题, 在此不做比较(可以哪天单立个开源库选择的话题讨论下).
以下根据个人经验和当前项目的情况初步选择的一些库(个人喜欢的很多其他库会在后续项目中采用哦~):
· ButterKnife将Android视图和回调方法绑定到字段和方法上。
采用最新版本8.2.1, 需要如下配置:
1、在
中,添加:
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
...
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
}
如:
2、在
中添加:
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
如:
· EventBus安卓优化的事件总线,简化了活动、片段、线程、服务等