ZenFlow 是一款简约的微信小程序,旨在通过引导式呼吸练习和心情记录,帮助用户放松身心、缓解压力、提升专注力。
- 引导式呼吸练习:
- 基于 Canvas 的动态呼吸球动画,引导用户进行吸气、屏息、呼气。
- 可自定义的练习时长选择。
- 背景音效(如:白噪音、自然声音)辅助放松。
- 结束时播放提示音。
- 心情及压力水平选择:
- 通过首页的 "Dock" 式交互 Emoji 列表快速选择当前状态,启动对应类型的练习。
- 练习记录与可视化:
- 自动记录每次练习的日期、时长和练习后的心情。
- 在首页展示最近的练习记录列表。
- 通过柱状图表可视化近期的练习历史,包括时长和心情颜色标记。
- B站视频推荐区(可关闭/恢复):
- 首页底部新增"开发缘由 · 推荐视频"区域,支持扫码或一键跳转B站小程序观看。
- 用户可点击右上角"×"关闭该区域,关闭后页面右上角会出现小icon,点击可重新打开并自动滚动到该区域。
- 数据导出与隐私保护:
- 首页底部新增"导出我的数据"按钮,支持将本地历史数据导出为JSON文件,可保存到本地或通过微信分享。
- 隐私说明分段展示,包含数据本地存储、导出建议、卸载提醒等,采用列表形式更清晰。
- 个性化与反馈:
- 练习结束后的烟花庆祝动画。
- 支持与建议弹窗,包含项目简介和反馈渠道(通过预览二维码图片)。
- 状态管理:
- 小程序切换到后台时自动暂停练习和音频,返回前台时可恢复。
zenflowapp/ ├── pages/ # 微信小程序页面目录 │ ├── index/ # 首页 (心情选择、练习历史、图表、B站推荐、数据导出、隐私说明) │ └── training/ # 呼吸训练页 (Canvas动画、音频、计时器) ├── static/ # 静态资源目录 │ ├── audio/ # 音频文件 (背景音乐, 提示音) │ ├── emoji/ # (若有使用) Emoji 相关图片资源 │ └── images/ # 其他图片资源 (如二维码、B站视频二维码、微信二维码) ├── app.js # 小程序全局逻辑 ├── app.json # 小程序全局配置 ├── app.wxss # 小程序全局样式表 ├── project.config.json # 项目配置文件 (建议将 appid 等敏感信息移至 project.private.config.json) └── project.private.config.json # 项目私有配置文件 (应被 .gitignore 忽略) - 环境准备:
- 下载并安装最新版的 微信开发者工具。
- 导入项目:
- 打开微信开发者工具。
- 选择 "导入项目"。
- AppID:请填入您自己申请的小程序 AppID,或者选择 "测试号" (部分功能可能受限)。
- 项目名称:自定义。
- 目录:选择本项目的
zenflowapp根目录。
- 运行与调试:
- 点击 "编译" 或 "预览" 即可在开发者工具中运行和调试。
- 如需在真机上预览,请确保开发者工具已登录,并使用同一微信扫码预览。
- 微信小程序原生框架: JavaScript, WXML, WXSS
- Canvas 2D API: 用于实现动态呼吸球和烟花动画。
- wx.getBackgroundAudioManager: 用于音频播放,支持后台播放。
- wx.setStorageSync/wx.getStorageSync: 用于本地数据存储(练习历史等)。
- wx.getFileSystemManager/wx.saveFile/wx.shareFileMessage: 用于本地文件导出与微信分享。
- wx.pageScrollTo: 用于自动滚动到指定区域。
欢迎各种形式的贡献,包括但不限于:
- 功能建议
- Bug 反馈
- 代码提交 (请先提 Issue 讨论)
该项目采用 MIT License (建议后续添加LICENSE文件)。
希望这个小程序能为你带来片刻的宁静与专注。
- 完善成就系统(更丰富的称号和奖励,训练完成时自动判断解锁条件并发放奖励)
- 习惯进度页(如决定单独创建 pages/progress/progress,展示连续打卡、习惯养成等)
- 细化打卡和连续天数逻辑,提供更明确的反馈和视觉提示
- UI/UX 持续打磨和性能优化(包括动画、交互细节、适配等)
- 提交微信小程序审核,按反馈微调
- 成就奖励音频、背景等资源丰富化
- 支持更多个性化设置(如自定义音效、主题等)