介绍
这个APP是弄毕业设计的时候写的,也是一个比较成规模的个人项目,断断续续花了几个月的时间,将会分为多篇文章记录一下。刚开始写这个APP的时候也仅仅看完郭霖老师的一本《第一行代码》。由于在学习的过程中用到了很多别人的成果,纠结了很久发不发出来,现在发出来用来记录我的Android学习路程。后续将会用多篇文章爬坑。。。
先上项目链接
项目中的代码有部分来源于开源代码,由于写的时间离现在有点远,有些记不清,如有冒犯到,请联系本人。
- 日历模块来自于:github.com/huanghaibin… 3.7.1开源版本,由于用的时候JCenter跑路了,因此就拷了一份放本地。
- 时间选择模块来自于呆呆维尼大佬的:juejin.cn/post/684490… 很好用,推荐!
- 富文本模块忘了。
- APP封面也忘了,如有抄袭到原作者的设计,请联系我。
设计
在进行APP UI设计的时候参考了Material Design的设计和使用了Error配色。[设计稿链接] (www.figma.com/file/V7rofx…)
由于当代Android手机太大了,因此我主要将操作区域放在了屏幕的中下方,将展示区域放在屏幕的上方,方便使用。
APP中的主要功能为笔记、记账、记录事务、纪念日的功能,有很多市面上应用的影子,也比较缝合。
MVVM
本APP架构使用了MVVM架构。
Model 层
在数据持久上使用了Room数据库,使用DataStore存放一些不是很重要的数据,没有架设服务器。在使用Room的时候遇到了比较多的坑,并且网上常见的教程都是关于简单使用,场景一旦复杂就没什么教程了,之后有时间会写一期说说。
ViewModel 层
ViewModel使用了Jetpack同名框架ViewModel,这里就没什么好说的,主要承接View和Model层之间的中间人。
View 层
View层主要应用到了观察者模式,也是第一次接触这个模式。
部分界面展示
主页
账单分析界面
设计比较多的数据处理,使用MPAndroidChart开源库生成图表。
纪念日界面
主要功能仿造Day Matter倒数日
多选删除
说实话这个功能看着简单,做起来不简单。。。在实现的时候用了很多笨方法,性能其实不是很好,胜在测试数量不大(几千条)的时候也不会造成不流畅的现象,在以后掌握了新知识的时候会对这一块进行重构。
总结
暂时先到这啦,先占个坑。以后慢慢对项目中的比较重要的地方爬坑。