前言
Easy life, easy learning.南京大学软件学院大一2023EL交互组比赛从4月4日公布主题,5月10日进行中期检查,最后要求在5月30日实现最终作品提交。
在这为期两个月的过程中,我们的时间分配实际上完全不够“均衡”。在一整个四月,我们都在讨论作品的选题和实现形式。将时间压缩得这么久,实际上是一场豪赌。我们以各自的校园生活作为起点,列举了不少预选课题,最终都被我们否定。也是在偶然中看见了历届学长制作的时间规划、任务提醒、习惯打卡一类APP后,我们才总结出一些此类项目的弊端,并衍生了为长期项目打造一款软件的想法。同时在选择呈现形式时,我们一致认为手机APP具有查看方便、可以提供实时提醒等一系列优势,敲定利用Android Studio进行开发。(这些讨论在我们提交中期文档时还只是一个未付诸实现的模型)
有了初步概念以后,我们的节奏逐渐加快。小组一共4人,前端和后端各自2人。每做好一个前端界面布局,就push到代码仓库,和后端做好衔接操作。于是想象终于有了形状与颜色,最终在ddl前三天完成了全部功能(当然也因为时间有限多次进行删繁就简,好处是使得界面布局更加清晰简明),最后的三天进行试用与调试,在30日晚交出最终成果。
答辩内容展示
我们将答辩分为四个部分,分别是设计理念、功能介绍、项目特色与使用技术。
设计理念
作为一款软件,我们最注重的是它实现的功能以及用户体验。因此我将这些要求总结为以下三点:
-
一款针对性解决项目管理问题的软件。“在这款App里,专注于你的项目本身。”我们会在Project创建时引导用户进行阶段规划,指出对应完成的预期时间以及项目截止时间。同时,可以在每个阶段设立将要完成的目标,最终构成我们对完成度的计算。
-
一款符合当代大学生学习需求的软件。我以自身举例,在期末我们会安排一个为期两个月的大项目,要求完成一个类幸存者游戏的创作。每个阶段大致分为两个星期,但从第三个阶段才开始记录成绩验收。因此多数同学在开始的一个月并没有足够重视这样的项目,导致在第三阶段前才开始赶进度,使得项目质量较为粗糙。因此我们的主界面就呈现了这样的一个嵌套圆结构用来显示当前时间进程,目前处于第几个阶段。这样的一款软件,它将时间具象化、可视化,达到对长期项目的完成度进行计算与监控的作用。同时我们在到达阶段并没有全部完成阶段要求时,也会给出程序的进度提醒。
-
一款专注于用户体验的轻量级软件。整个apk的大小不超过5M,正是这样一款“超薄”的软件,我们完成了较为齐全的功能设计。我们没有账号设置一系列联网功能,只要用户填入项目信息,就直接创建一个项目并进入主界面。对于每个阶段来说,我们设计的是类记事本结构。点击每个阶段对应的圆圈,可以标记或增删target。
功能介绍
可以参考代码仓库 https://github.com/Pchan-nju/DUODUO 中的readme文档,或下载apk可以在初始界面查看操作教程,或者观看b站视频 https://www.bilibili.com/video/BV1Qh4y1s7d4/?spm_id_from=333.999.0.0 以查看DUODUO的功能(可直接跳到功能介绍章节)。
项目特色
在讲项目特色时,我们将自己的软件和手机备忘录以及《我要做计划》APP进行了对比。手机备忘录以tag形式对每一个任务进行标注,带有辅助用户记忆、并设定提醒的方式。它的界面ui设计简洁,很适合用户将一些不容易记住的小事放上去。而《我要做计划》用四个专栏对重要度和紧急度进行排列,对于一些周期性的作业或是事件可以帮助用户筛选先做和后做的事项。相对而言,我们所有target的排列是放进project下的各种stage里的,这样的排列更加紧凑,适用于整体的规划。同时我们没有采用日历形式,而是可视化嵌套圆,更符合用户查看大项目的时间进程情况。
使用技术
我们使用Android Studio进行项目开发,前端利用XML作为整体界面布局,配合Java语言生成可随时间调整大小的嵌套圆。后端也使用的是Java语言,实现底层逻辑。我们小组全程使用了Git管理代码,分工较为明确(同时如果仔细看我们的commit内容会发现实现过程非常欢乐)
我分配到的任务是前端,使用xml对软件界面进行布局。在刚开始写代码时,需要清晰了解利用各个layout框架搭建的优势,constraint、liner和scrollview各有其应用场景。以我们设置每个stage里构建target为例,每条小目标是三个控件的组合,序号、文字和删减按钮。此时将这三者打包在一个横向linerlayout,再将控件组放进竖向linerlayout中。同时整体上有可能会超出页面的长度,我们需要在外面添加一个scrollview。这样在Java语言后期处理时,可以将控件组进行复制修改,实现目标的增减与修改。因此在写xml前期,不妨多去学习页面布局的逻辑与架构,到后期界面设计就会得到速度的飞跃。
在设计方面,推荐b站up主“叫醒耳朵WakeUp”,可以获得不少对于界面渲染美观方面的灵感(好看也是吸引用户很重要的一环)。
需要改进的地方
-
我们刚做完项目生成第一个apk时,发现对于不同安卓型号手机很难做到屏幕比例相同,很多按键都有重叠的情况需要我们去修改。实际上我们完全可以不去使用Android Studio自带的虚拟手机,可以将需要使用的手机和Android Studio进行直连,从而在手机上进行直接调试。
-
虽然我们做了不少教程,但是在答辩的时候对于我们的嵌套圆设计评委老师依旧花了不少时间去理解。我们的主界面为了达到简洁美观的设计导致缺少了一些必要的提示,导致短时间内使用者需要和界面进行一些磨合。这也是我们在下一个阶段期望做到的:在主界面添加教程按钮,或者添加必要的一些文字说明。
最后
在最后颁布奖项时,我们意外获得了一等奖的成绩。评委老师对我们的评价是UI设计美观、项目完成度高。实际上,这只是一款由我们设计,最终为我们使用的软件。现在我正在拿它管理我的高级程序设计大项目(同时会发现因为前期一直在做APP导致进度过少)。因此,我们最终仍希望让DuoDuo助力每一项Project的完成,也期待会有用户真正去使用我们的软件(毕竟我们不会删库跑路)。