前言
上次写笔记已经是3个多月前了,因为在3月初的时候,我开始从0着手做一个记账app参加华迪杯,这个app是我学习Android一年,自己独立做的第一个完整的项目。对于没做过完整项目的我来说,完全无从下手,但是后面跟着网上的视频,用mvp架构做了一个简单的项目后,基本对一个项目的整体架构有了初步的认识,后来,随着功能、界面的增加,对一些知识的运用越来越熟练,比如:MVP架构的分层思想、回调思想等;网络请求的retrofit框架等;以及google推出的jetpack中的Room的使用基本都去学习和操作了一遍,收获很多,当然这个过程中还用了很多的框架,我会整理成一个系列,方便以后直接来使用这些轮子。那对这个项目的介绍正式开始:
1、项目地址:小票记账
2、项目预览
3、项目介绍
1) 这个项目大体是采用的MVP架构,但是在数据持久化部分,采用的是Room+LiveData+ViewModel,这部分更偏向于MVVM架构
2) 项目采用一个Activity+多个Fragment的模式(其中一共用了4个Activity和十多个Fragment组合而成,这样减少了Activity这个组件的创建和销毁所需的时间)
4、项目功能
这个项目是基于小票识别的一个记账app,他的后台算法可以自动识别并提取用户上传的小票照片,然后展示给用户,最后用户可以选择保存在本地数据库中。除了自动识别小票,这个app还可以手动记账,扩大了这个app的功能范畴。
- 首页界面:用于用户选择提取小票或者手动记账,并展示本月开支和设置预算后的余额,方便用户控制自己的消费行为,同时,还展示了今日支出这一栏,方便用户观察今日记账和小票日期为今日的账单。
- 结果返回界面:将下票上提取到的信息展示给用户(时间、总额、种类、详情等),通知还支持用户手动更改算法识别错误的商品,保证最终保存结果的准确性。
- 清单界面:给用户展示某一类型下的账单信息,并可以点击展开,观察到每条账单下的该类型商品。同时右侧还提供了快速选择种类和时间筛选的功能,方便用户更快、更准确的找到自己想查找到的信息。
- 领劵界面:领劵界面的后台是用的别人的后台接口,我们获取数据后,通过分类展示给用户,同时还有搜索界面,方便用户找到自己想要的商品的劵。
- 领劵跳转界面:用户通过点击“领劵跳转”按钮,可以自动跳转到淘宝领劵
- 设置预期界面:用户通过设置每段时间的预算(今天、本周、本月、本年、本季),来控制首页展示给用户的“本月所剩余额”。并且也可以设置单类商品的预算,来查看这类商品在本段时间内的消费情况。
- 图表分析界面:将用户一段时间内的消费信息通过饼状图的方式展示给用户,并且将该段时间内,各类商品的消费进行从高到低的排序,方便用户了解自己的消费记录。
5、项目总结:
这个项目是我接触Android一年后的第一个项目,从界面的设计到功能的实现,一步一个脚印的过来,学到了很多,也接触到了很多框架和第三方库,以及巩固了本学期学习的数据库知识,但是项目仍有很多不足之处,后面会继续维护。