原文摘要
作为一个强迫症患者,当我需要一个简单、好用、流畅、无广告的健身记录软件时,撸铁记就诞生了。
为什么我要开发撸铁记
我应该是2018年接触健身的,那个时候我的教练每次给我上课,都会拿着一个文件夹记录我的每一次训练。但是纸制记录最大的问题是难保存,而且只能教练一个人看,于是我写了第一个健身记录软件,叫FitnessRecord,然后我就在知乎上分享了自己的应用,没想到真的有人用!
后来,在朋友的撺掇下,我正式决定将撸铁记推上线,然后就是(巴拉巴拉极其费劲的上线了!)
个人开发者有多痛苦
一个完美的软件,最重要的,不仅要好看,还得好用,于是,就出现了下面这些设计
暗黑模式
一个 APP,如果不支持暗黑模式,那你让强迫症怎么活?
但是...你以为这就完了吗?细节藏在魔鬼里😄
绝对黑
记得前两年各大手机厂商还在卷屏幕的时候,苹果率先推出了“绝对黑”,强调OLED屏幕通过像素关闭实现的物理级纯黑效果。so~为了实现在暗黑模式下,软件用的更爽,撸铁记的 APP 的背景色使用了#000000,也就是纯黑色
这样做的好处是在暗黑模式下,撸铁记可以与屏幕完美的融为一体。但是!问题来了。纯黑色真的很难设计,作为一个程序员出身的我,头发都抓掉了好几把。
有细心的小伙伴们或许已经发现了,亮色模式下跟暗黑模式的主题色其实不是一个颜色:
我们发现在暗黑模式下,亮色模式下的主题色与黑色之间的对比度不够明显,导致整体色调暗沉,因此,亮色模式的主题色是:#3B7AEF 暗黑模式下则是:#2E6FEC
虚拟导航键适配
Android 的虚拟导航键如果适配不好,有多丑相信懂得都懂,为了能够在弹窗模式下也能够让弹窗与导航栏完美无瑕的融为一体,我设计了一个 BaseDialog,专门用来管理弹窗状态,确保在任何页面,虚拟导航栏都不会影响到 APP 的整体颜值!
左滑展示更多功能
作为一个专业的记录软件,各种各样的功能总要有吧?
全部堆叠到更多菜单中是不是很傻?如果在屏幕排列出来展示是不是更傻?所以,左滑删除这种很合理的交互是不是得有?
IOS 设备是常态,但是能够完美的搬到 Android 机器上,该怎么做?鸿蒙系统又该怎么适配?!
但是!我说的是但是,为了更漂亮的 UI,更合理的交互,我又熬了个通宵,最终完美解决!
好的交互就得多看,多学
每个人的习惯都不同,比如有的用户希望能够在倒计时 120s 之后有一个声音提示,有的则希望可以按照训练顺序,对卡片自动排序,那么问题来了,这些功能又该堆叠在哪里呢?
我的灵感来源是一款不太出名的 P 图软件
在训练详情页面的左侧,有一根很不起眼的线,当你触摸这条线的时候,就会弹出训练设置的总菜单啦!(不用担心很难触摸,我已经将触摸范围调整到了最合适的大小,既不会误触,也不会很难点👍)
其实,APP 还有很多为了“好看”而做的设计,但是一个好的 APP,只是静态的好看怎么能行!
完美的入场动效
我该如何像您吹嘘这系统级的丝滑动效?请看 VCR(希望掘金支持视频链接😂): www.bilibili.com/video/BV1sb… www.bilibili.com/video/BV1Pb…
如何?是否足够丝滑???
当然,功能性才是核心
除了记录的易用性和强大复杂的功能,为了能够 360° 覆盖健身所需要的所有场景,我还开发了各种各样的功能
赛博智能
赛博智能,我希望这个功能可以像赛博机器人一样,对我的身体状况进行 360° 评估。
鄙人不才,晒一下我的身体状态评估分析:
一个超级大长图,几乎涵盖了你想要知道的一切~当然,后续还会继续丰富其他功能😁
日历统计
这个月你偷懒了吗
是的,你的每一滴汗水,都会浓缩破到这一张小小的日历表格中,如果你偷懒了,那就是一张空空的日历,那么,你会努力填满每一天的,对吧?
最后的最后
按原本的计划,我想要从设计到功能,认真的介绍一下撸铁记的所有方方面面,但是回头看看,文章真的太长了,所以,就留一点悬念给大家,希望需要的小伙伴自行探索😁
其实,每一个细节,我都改过很多次,后续依旧会不断的改来改去,因为我只想要最好~
最后,祝愿所有喜欢健身的朋友,都可以收获自己成功~
进一步信息揣测
- 个人开发者上线应用的隐性成本:文章提到“巴拉巴拉极其费劲的上线了”,暗示应用上线涉及复杂的审核、合规或技术适配问题(如不同应用商店政策、隐私协议等),但未具体展开,这些细节通常需要踩坑才能掌握。
- 暗黑模式设计的隐藏陷阱:使用纯黑色(#000000)虽能与OLED屏幕融合,但实际开发中会遇到设计难题(如色彩对比度不足、元素辨识度低),需调整主题色(亮色#3B7AEF→暗色#2E6FEC),这类经验通常来自反复测试或行业交流。
- Android虚拟导航键适配的冷知识:需自定义
BaseDialog管理弹窗状态,避免导航栏破坏UI完整性。这种适配细节很少公开讨论,多来自开发者社区或实战经验。 - 跨平台交互设计的妥协:左滑删除功能在iOS常见,但移植到Android和鸿蒙需额外适配(如触摸区域调整、动画优化),文中提到“熬通宵解决”,暗示存在未明说的兼容性坑。
- 隐藏式菜单的交互设计技巧:通过“不起眼的线”触发设置菜单,并精准控制触摸范围(避免误触又易操作),灵感来自小众P图软件。这种非标设计通常需用户行为数据分析或竞品研究。
- 动效开发的非公开资源依赖:丝滑动效的实现可能依赖特定引擎或框架(如Lottie),但文中未提具体技术栈,这类优化技巧多存在于付费课程或内部技术文档。
- 功能堆叠的隐性取舍:用户需求多样(如倒计时提示、卡片排序),但功能入口需平衡易用性与界面简洁性,最终选择隐藏式设计。这种决策逻辑通常来自用户测试或A/B实验,而非公开指南。
- 个人开发者的非技术痛点:如“头发抓掉好几把”暗示独立开发需兼顾设计、编程、测试,缺乏团队分工,效率低下,这类压力很少在正式教程中提及。