google在2017年出了一个新的框架 android-architecture-components 模式为MVVM.主要用到了
- V - LifecycleActivity,LifecycleFragment为View层,所有的view操作都在这边处理,数据方面只负责接收
- VM - ViewModel用于控制数据逻辑层代码,所有的数据代码都在这里处理
- M - 俗称的Model层
- repository - 数据仓库,一般来说是用于定义service的,主要是当数据源需要在SQLite和Http切换的时候用到,如果没有这种业务可以不需要这一层
- Data Binding - 用于实现双向绑定
- LiveData 一个具有生命周期的数据管理器,当V和VM绑定后,在VM的LiveData会跟随的V的生命周期消失
- Data Binding - 我第一个就舍弃掉了,原因是我觉得它侵入了我的xml文件,维护代码会很麻烦
- LiveData - 刚刚开始我觉得这个东西应该很棒,毕竟跟随着生命周期嘛.然后我写着写着就觉得不对劲了.首先,LiveData的observe方法会调用多次给了我不可控的感觉.其次,LiveData作为一个数据管理器,数据操作太难受了,用着很别扭.然后我就弃用LiveData,投入了RxJava的怀抱了.哇~贼舒服...
- base 封装了LifecycleActivity,LifecycleFragment,主要是实现了LifecycleOwner接口
- di dogger2的一些处理,封装了Activity,fragment,ViewModel,Http相关.
- repository 数据提供工厂
- ui 项目的V层和VM层全部在这个里面
- viewmodel 提供统一的VM生成器,用于dogger2生成VM
- 本项目采用了单AC+多FG模式,数据操作用的是RxJava2
感谢项目中用到的开源项目的作者,本项目中有些功能受你们项目灵感的启发,有些功能也用到你们的代码完成。
对此如果有什么意见请与我联系!再次感谢!
- toolbar代码的编写
- 图片瀑布流滑动造成混乱
- RxHelper.rxSchedulerHelper 从VM层迁移到V层.这不应该属于VM管理
- 去除dogger2
- 组件化第一步完成
- flutter初步了解
- 新增了新闻模块
- repository的完善,增加SQLite本地缓存
- 更多的功能