代码实现
技术选型:(10min)
MVP代码实现:(90min)
- 新建一个iOS项目
- 创建主界面MainView,整合TabView,管理打卡,回顾,设置页面
- 创建Model:挑战,习惯,记录
- 搭建开始页面,用来开始新挑战 或者 回到当前挑战
- 搭建打卡页面,使用List显示7个习惯,并实现打卡功能
- 搭建回顾页面,使用Grid展示50天 * 7个习惯的完整打卡情况
- 搭建设置页面,包含技术支持与隐私政策页面的外部链接
- 实现挑战归档,完成挑战历史与挑战详细页面的展示
- 构建挑战完成后的开始页面与重开挑战流程
已完成功能(v1.1~v2.0 实现)
- 更改日期功能(补打卡)✅
- 添加打卡备注说明✅
- 计算连续打卡天数✅
- 自定义习惯✅
- 自定义挑战周期✅
- 打卡提醒✅
- 分享挑战成果✅
- UI/UX优化✅
待开发 / 拟扩展功能
- 开始日期的编辑
- 奖励机制(满足条件解锁徽章)
- 多语言支持(英语,日语)
测试:(30min)
- 主要功能流程测试:开始 -> 打卡/回顾/设置 -> 结束 -> 再次开始
- 挑战生命周期测试
| 编号 |
测试动作 |
期待结果 |
备注 |
| 1-1 |
首次打开APP |
展示开始页面 |
|
| 1-2 |
点击开始挑战 |
跳转进入打卡页面 |
显示Day1以及7个习惯 |
| 1-3 |
点击Tab栏 |
可在打卡,回顾,设置3页面之前自由跳转 |
|
| 1-4 |
点击若干习惯 |
习惯切换为打卡状态 |
再次点击后可取消打卡状态 |
| 1-5 |
切换至回顾页面 |
正确展示打卡状态 |
显示Day1/50以及7组习惯,每组50个记录 |
| 1-6 |
切换至设置页面 |
显示设置菜单 |
|
| 1-7 |
点击挑战一览 |
挑战一览页面中显示当前挑战 |
|
| 1-8 |
点击当前挑战 |
进入挑战详细页面 |
挑战数据正确展示 |
| 1-9 |
返回设置页面并结束当前挑战 |
返回至开始页面 |
|
| 1-10 |
再次点击开始挑战 |
开启新的挑战 |
在挑战一览页面中显示之前结束的挑战以及当前新的挑战 |
| 1-11 |
修改打卡记录后关闭APP再重新进入 |
修改后数据依然正确展示 |
|
| 2-1 |
用数据库工具手动修改当前挑战的开始日期至50天前 |
展示完成挑战后的开始页面 |
|
| 2-2 |
再次点击开始挑战 |
开启新的挑战 |
在挑战一览页面中显示之前结束的挑战以及当前新的挑战 |
追加测试 [v1.3]
3. 跨日期自动变更测试
| 编号 |
测试前提 |
测试动作 |
期待结果 |
| 3-1 |
当前为挑战倒数第2天 |
显示打卡页,App 保持前台直到 0 点 |
日期自动更新为次日 |
| 3-2 |
同上 |
显示过往日期,App 保持前台直到 0 点 |
显示日期保持不变 |
| 3-3 |
同上 |
显示今日,切换至回顾页并保持前台直到 0 点 |
显示天数自动更新 |
| 3-4 |
同上 |
显示过往日期,切换至回顾页并保持前台直到 0 点 |
显示天数自动更新 |
| 3-5 |
同上 |
显示今日,App 切至后台,0 点后重新打开 |
日期自动更新为次日 |
| 3-6 |
同上 |
显示过往日期,App 切至后台,0 点后重新打开 |
显示日期保持不变 |
| 3-7 |
同上 |
显示今日,切换至回顾页,App 切至后台,0 点后重新打开 |
显示天数自动更新 |
| 3-8 |
同上 |
显示过往日期,切换至回顾页,App 切至后台,0 点后重新打开 |
显示天数自动更新 |
| 3-9 |
当前为挑战倒数第1天 |
显示打卡页,App 保持前台直到 0 点 |
自动跳转至挑战结束页面 |
| 3-10 |
同上 |
显示过往日期,App 保持前台直到 0 点 |
自动跳转至挑战结束页面 |
| 3-11 |
同上 |
显示今日,切换至回顾页并保持前台直到 0 点 |
自动跳转至挑战结束页面 |
| 3-12 |
同上 |
显示过往日期,切换至回顾页并保持前台直到 0 点 |
自动跳转至挑战结束页面 |
| 3-13 |
同上 |
显示今日,App 切至后台,0 点后重新打开 |
自动跳转至挑战结束页面 |
| 3-14 |
同上 |
显示过往日期,App 切至后台,0 点后重新打开 |
自动跳转至挑战结束页面 |
| 3-15 |
同上 |
显示今日,切换至回顾页,App 切至后台,0 点后重新打开 |
自动跳转至挑战结束页面 |
| 3-16 |
同上 |
显示过往日期,切换至回顾页,App 切至后台,0 点后重新打开 |
自动跳转至挑战结束页面 |