《从零开始的记账本开发》第0篇 背景介绍及软件界面
一、背景
本人计算机专业,在刚结束的前一个学期都在大量的编写代码。在那个学期里学习了Android移动开发、JavaWeb开发以及软件工程,再加上之前学习的数据结构、数据库原理与应用、计算机网络、算法设计与分析。具有强烈愿望去尝试开发一款较为完善的软件,当然仅靠课堂上的知识是远远不够用的,大部分都得自己去查找资料。
由于有三个课程需要实现相关程序,所以我已“软件工程”为指导思想,结合已掌握的技能,开发了一款Android平台的记账本,当然界面和功能要比入门级的好一些,虽然花了大量的时间,但同时解决了三个课程的大作业,也算是大体上完成任务。
二、介绍
- 本系列文章讲诉的是一个软件开发的大致过程
- 前面描述文档的编写
- 后面是代码实现部分
- 运行平台是Android,代码是Java,软件模式是MVVM
本系列文章并没有深奥之处,只是记录一个菜鸟怎样从整体上笨手笨脚地把握一个软件的开发
三、开发前的预热
开发软件前总得找个为什么。或是他人提出的要求,亦或是自己的一个想法。当然我的是后者,也包含了课程老师的一些要求。结合各个课程老师的作业要求,我设计的是一个Android平台的记账本,也许你觉得很low,但是这是一个具有完整开发过程的软件。下面是我在开发前一些个人假设的一些功能,有些功能模块未实现
编号 |
功能名称 |
功能描述 |
输入 |
系统响应 |
输出 |
1 |
注册 |
使用手机注册为新用户 |
合法的手机号 |
查询该手机是否已经注册 |
①是则提示登录②否则让用户设置密码 |
2 |
登录 |
选择登录则可备份数据到云端或恢复数据到本地 |
用户手机号和密码 |
查询服务器数据库验证账号密码,限制同一设备的响应次数 |
①验证成功,将云端数据下载到本地,如果本地有数据,则提示用户是否将其同步到云端②验证失败,如果账号不存在则提示不存在该用户,如果密码错误,则提示密码错误 |
3 |
插入流水记录 |
插入流水的类别(支出或收入)时间、类型(购物、工资等)、数额、描述 |
完整的单条流水信息 |
验证数据完整性和合法性,插入数据库,并返回主页更新界面 |
如果数据不完整Toast提示用户输入缺少项,插入失败,则提示失败的原因;插入成功,返回主页,第一行显示刚插入的信息 |
4 |
编辑流水记录 |
编辑流水的类别(支出或收入)时间、类型(购物、工资等)、数额、描述 |
点击某条流水记录 |
从数据库读取该条记录 |
进入流水编辑界面 |
5 |
删除流水记录 |
删除单条流水的全部信息 |
左右滑动删除,可撤销 |
从数据库删除该条记录 |
Snackbar显示删除了一条记录,如果选择了多条,则显示具体数值的,并提供撤销按钮 |
6 |
按时间、类别显示 |
通过指定时间区间、类别来筛选数据库信息 |
通过操作设置好的筛选控件 |
按条件查询数据库 |
显示符合用户筛选条件的记录 |
7 |
图表分析统计 |
图形显示各种类型占比 |
通过操作设置好的筛选控件 |
按条件查询数据库 |
饼状图,折线图显示符合用户筛选条件的记录 |
8 |
云端同步 |
特定行为,时间间隔等将会触发本地数据与服务器同步 |
程序开始运行,用户记录数量达到特定值,距上次同步时间达半小时 |
本地数据与云端进行比较,云端采用类似版本控制来存储 |
在用户信息界面显示上次同步时间 |
四、最终产品展示
1、登录注册界面(第三方模板)
注册页面:创建账户,如果用户名已注册则提示登录,重复密码不一致,使用toast提示,注册成功跳转到登录界面。
登录页面:账号密码通过验证即可进入APP操作,账号密码不匹配则会有相关toast提示。
2、账单列表显示界面
该界面显示账单的标签、类型、数额信息、统计信息,功能包括按条件筛选账单、滑动删除账单,可撤销、点击账单条目进入编辑界面、点击添加图标可进入账单添加界面、可按标签或备注来搜索相关账单。
3、账单添加界面(借鉴第三方)
该界面包含支出、收入两个子页,其下有相关具体的标签信息,页可点击设置跳转到标签页面。在添加账单信息时,时间会自动获取为当前的时间,也可点击自行修改,不能修改为未来的日期,可具体到小时和分钟。添加备注信息时,会通过弹窗提示用户输入。
4、账单图形统计显示界面
该界面显示各种类别的占比,通过点击顶部按钮来选择时间范围,默认为近一个月,支出和收入两大类别的信息显示可通过图表的下方两个按钮来实现,最后下方会按金额从大到小来显示具体单笔账目。
5、账单编辑界面
该界面可查看点击账目的详细信息,其中包括备注信息,可在此界面删除该账单,删除成功后会有相关提示信息,并返回主界面。点击编辑会跳转到添加界面,并把该账单信息自动填写到添加界面的相关位置。
6、标签列表界面
该界面显示标签的名称和其对应的图标,功能包括拖拽排序标签、其影响账单添加界面里的标签顺序、滑动删除标签,可撤销、点击添加图标可添加新的标签、点击标签可查看该标签下的所有账单信息和相关统计信息。
7、个人信息和预算设计界面
包含用户的用户名和账单的总记录数,功能包括添加年预算和月预算、退出登录和其他的一些应用版本开发者人口信息。
8、工程目录结构
该项目遵循主流的设计结构划分。adapters目录下包含了账单、标签的列表显示适配器;data目录下包含了实体类,及数据库操作的接口;login目录下为注册登录代码;UI下分为五部分,其中detail、chart、person为底部导航可直达界面,add、category通过detail界面里的图标触发跳转或其他界面的按钮来跳转;utils为工具类,封装一些复用的静态方法,包含时间格式转换,时间选择器,饼状图属性设置等。详细结构如下图:
五、后记
欲知后续具体开发,请耐心等候作者更新!谢谢!