《从零开始的记账本开发》第0篇 背景介绍及软件界面

一、背景

本人计算机专业,在刚结束的前一个学期都在大量的编写代码。在那个学期里学习了Android移动开发、JavaWeb开发以及软件工程,再加上之前学习的数据结构、数据库原理与应用、计算机网络、算法设计与分析。具有强烈愿望去尝试开发一款较为完善的软件,当然仅靠课堂上的知识是远远不够用的,大部分都得自己去查找资料。

由于有三个课程需要实现相关程序,所以我已“软件工程”为指导思想,结合已掌握的技能,开发了一款Android平台的记账本,当然界面和功能要比入门级的好一些,虽然花了大量的时间,但同时解决了三个课程的大作业,也算是大体上完成任务。

二、介绍

  • 本系列文章讲诉的是一个软件开发的大致过程
  • 前面描述文档的编写
  • 后面是代码实现部分
  • 运行平台是Android,代码是Java,软件模式是MVVM

本系列文章并没有深奥之处,只是记录一个菜鸟怎样从整体上笨手笨脚地把握一个软件的开发

三、开发前的预热

开发软件前总得找个为什么。或是他人提出的要求,亦或是自己的一个想法。当然我的是后者,也包含了课程老师的一些要求。结合各个课程老师的作业要求,我设计的是一个Android平台的记账本,也许你觉得很low,但是这是一个具有完整开发过程的软件。下面是我在开发前一些个人假设的一些功能,有些功能模块未实现

编号

功能名称

功能描述

输入

系统响应

输出

1

注册

使用手机注册为新用户

合法的手机号

查询该手机是否已经注册

①是则提示登录②否则让用户设置密码

2

登录

选择登录则可备份数据到云端或恢复数据到本地

用户手机号和密码

查询服务器数据库验证账号密码,限制同一设备的响应次数

①验证成功,将云端数据下载到本地,如果本地有数据,则提示用户是否将其同步到云端②验证失败,如果账号不存在则提示不存在该用户,如果密码错误,则提示密码错误

3

插入流水记录

插入流水的类别(支出或收入)时间、类型(购物、工资等)、数额、描述

完整的单条流水信息

验证数据完整性和合法性,插入数据库,并返回主页更新界面

如果数据不完整Toast提示用户输入缺少项,插入失败,则提示失败的原因;插入成功,返回主页,第一行显示刚插入的信息

4

编辑流水记录

编辑流水的类别(支出或收入)时间、类型(购物、工资等)、数额、描述

点击某条流水记录

从数据库读取该条记录

进入流水编辑界面

5

删除流水记录

删除单条流水的全部信息

左右滑动删除,可撤销

从数据库删除该条记录

Snackbar显示删除了一条记录,如果选择了多条,则显示具体数值的,并提供撤销按钮

6

按时间、类别显示

通过指定时间区间、类别来筛选数据库信息

通过操作设置好的筛选控件

按条件查询数据库

显示符合用户筛选条件的记录

7

图表分析统计

图形显示各种类型占比

通过操作设置好的筛选控件

按条件查询数据库

饼状图,折线图显示符合用户筛选条件的记录

8

云端同步

特定行为,时间间隔等将会触发本地数据与服务器同步

程序开始运行,用户记录数量达到特定值,距上次同步时间达半小时

本地数据与云端进行比较,云端采用类似版本控制来存储

在用户信息界面显示上次同步时间

 

四、最终产品展示

1、登录注册界面(第三方模板)

注册页面:创建账户,如果用户名已注册则提示登录,重复密码不一致,使用toast提示,注册成功跳转到登录界面。

登录页面:账号密码通过验证即可进入APP操作,账号密码不匹配则会有相关toast提示。

wastebook_login

2、账单列表显示界面

该界面显示账单的标签、类型、数额信息、统计信息,功能包括按条件筛选账单、滑动删除账单,可撤销、点击账单条目进入编辑界面、点击添加图标可进入账单添加界面、可按标签或备注来搜索相关账单。

3、账单添加界面(借鉴第三方)

该界面包含支出、收入两个子页,其下有相关具体的标签信息,页可点击设置跳转到标签页面。在添加账单信息时,时间会自动获取为当前的时间,也可点击自行修改,不能修改为未来的日期,可具体到小时和分钟。添加备注信息时,会通过弹窗提示用户输入。

4、账单图形统计显示界面

该界面显示各种类别的占比,通过点击顶部按钮来选择时间范围,默认为近一个月,支出和收入两大类别的信息显示可通过图表的下方两个按钮来实现,最后下方会按金额从大到小来显示具体单笔账目。

5、账单编辑界面

该界面可查看点击账目的详细信息,其中包括备注信息,可在此界面删除该账单,删除成功后会有相关提示信息,并返回主界面。点击编辑会跳转到添加界面,并把该账单信息自动填写到添加界面的相关位置。

6、标签列表界面

该界面显示标签的名称和其对应的图标,功能包括拖拽排序标签、其影响账单添加界面里的标签顺序、滑动删除标签,可撤销、点击添加图标可添加新的标签、点击标签可查看该标签下的所有账单信息和相关统计信息。

7、个人信息和预算设计界面

包含用户的用户名和账单的总记录数,功能包括添加年预算和月预算、退出登录和其他的一些应用版本开发者人口信息。

8、工程目录结构

该项目遵循主流的设计结构划分。adapters目录下包含了账单、标签的列表显示适配器;data目录下包含了实体类,及数据库操作的接口;login目录下为注册登录代码;UI下分为五部分,其中detail、chart、person为底部导航可直达界面,add、category通过detail界面里的图标触发跳转或其他界面的按钮来跳转;utils为工具类,封装一些复用的静态方法,包含时间格式转换,时间选择器,饼状图属性设置等。详细结构如下图:

五、后记

欲知后续具体开发,请耐心等候作者更新!谢谢!

《从零开始的记账本开发》第1篇 需求分析

《从零开始的记账本开发》第2篇 概要设计

《从零开始的记账本开发》第3篇 代码实现

  • 10
    点赞
  • 51
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值