BlockLifts 举重应用
一个完全可定制的举重追踪应用,也是我接触 Dart/Flutter 的入门之作。
功能
- 创建无限数量的锻炼计划
- 创建无限数量的练习,包括辅助练习(例如引体向上、弯举)
- 完全自定义每个锻炼计划,包含任意数量的练习,并可随时重新排序
- 告别心算:应用将自动确定在杠铃两侧应添加的杠铃片
- 组间计时器,告知何时应恢复
- 设置锻炼计划;应用将告知您在特定日期应进行哪个锻炼计划
- 自定义每个练习的组数和次数
- 自定义每次成功锻炼后自动添加的重量
- 自定义在连续几次失败后移除的重量
- 为每个锻炼计划添加备注
- 编辑之前的任何锻炼计划
- 查看每个练习随时间的进展
- 跟踪体重随时间的变化
- 日历可视化已完成锻炼的日期
- 深色模式和浅色模式
后端
这个应用让我获得了构建复杂后端的宝贵经验。在此之前,我从未在一个项目中管理过如此多的数据,因此构建上述所有功能是一项了不起的成就。
后端的大部分是基于所有锻炼计划的列表、所有练习的列表、每个锻炼计划的类以及每个练习的类的。锻炼计划类必须跟踪锻炼计划中的所有练习。练习类是最复杂的:它必须跟踪每次锻炼会话中完成的该练习的组数和次数。它还必须允许将来的自定义(例如添加或重新排序练习),同时仍存储之前的锻炼数据。设想锻炼计划 A 最初包含深蹲和硬拉,您完成一次后,稍后又将卧推添加到该锻炼计划中。锻炼历史记录屏幕必须同时显示这两种状态的锻炼计划 A,包含两个和三个练习。这是最难实现的项目之一。
预览
正如我所指出的,UI 仍有大量工作需要完成。主要是,有些屏幕尚未构建,背景主题也尚未实现。
主屏幕按计划完成的顺序显示锻炼计划列表。点击任何一个或点击“开始锻炼”即可进入相应的锻炼屏幕。
锻炼屏幕(未完成,需要添加标题/页脚和体重按钮)。每个圆圈代表一组,数字代表完成的次数。灰色圆圈表示用户尚未开始该组。
可重新排序的锻炼计划列表。点击一个锻炼计划或使用右侧的下拉菜单进行编辑。 
编辑锻炼计划页面显示锻炼计划中的练习列表。可以重新排序练习或添加新练习。 
要添加新的练习,您可以创建自定义练习或从任何先前创建的练习中选择。 
完全自定义每个练习的每个方面。



