16 KiB
FocusBuddy MVP 上线清单
目标: 4 周内完成可上线版本 策略: 最小可行 → 快速上线 → 迭代优化 创建日期: 2025年11月22日
一、MVP 功能精简建议 ⚠️
1.1 必须保留(核心价值)
| 功能 | 优先级 | 理由 |
|---|---|---|
| ✅ 一键开始专注(25分钟固定) | P0 | 降低选择成本 |
| ✅ "I got distracted" 按钮 | P0 | 核心差异化功能 |
| ✅ 4种分心分类 | P0 | 提供情感支持 |
| ✅ 鼓励文案反馈 | P0 | 体现"温柔"定位 |
| ✅ 简单完成统计 | P0 | 提供成就感 |
1.2 建议延后(V1.1 迭代)
| 功能 | 延后理由 | 替代方案 |
|---|---|---|
| ⏸️ 时长滑动调整(5-60分钟) | 增加开发复杂度 | 固定25分钟 + 设置页预设3个选项 |
| ⏸️ 白噪音播放 | 需要音频资源采购 + 测试 | V1.0 不实现,聚焦核心体验 |
| ⏸️ PDF 报告导出 | 复杂度高,用户需求待验证 | 先用截图分享替代 |
| ⏸️ 成就徽章动画 | 需要 Lottie 资源 | 简化为静态图标 + 文字 |
| ⏸️ 每周趋势图表 | 需要图表库 | 仅显示"今日总时长" |
1.3 MVP 最小功能集(3个核心页面)
页面1: Home Screen
- 大按钮: "Start Focusing (25 min)"
- 小字提示: "Tap 'I got distracted' anytime — no guilt."
- 底部导航: History | Settings
页面2: Focus Screen
- 倒计时: 24:37
- 按钮: "I got distracted" (弹出4选项)
- 按钮: "Pause" | "Stop"
页面3: Complete Screen
- 标题: "You focused for 24 minutes"
- 今日统计: "Total today: 47 mins | Distractions: 2"
- 鼓励语: 随机一条
- 按钮: "Start Another"
附加页面(简化版):
- History: 仅显示当天记录(列表)
- Settings: 默认时长选择 | 隐私政策链接 | 去广告按钮
二、技术实现优化建议
2.1 依赖包精简(减少集成风险)
必须集成:
dependencies:
flutter: sdk
hive: ^2.2.3 # 本地存储
hive_flutter: ^1.1.0
flutter_local_notifications: ^17.0.0 # 计时完成通知
path_provider: ^2.1.0 # 存储路径
暂缓集成(V1.1):
# workmanager: ^0.5.2 # 后台任务(MVP 不需要)
# lottie: ^3.0.0 # 动画(用静态图标替代)
# just_audio: ^0.9.36 # 音频(延后)
# pdf: ^3.10.0 # 报告导出(延后)
广告延后到 V1.0.1:
# google_mobile_ads: ^4.0.0 # 先上架审核通过再加广告
2.2 数据结构简化
// 最小可行数据模型
@HiveType(typeId: 0)
class FocusSession {
@HiveField(0)
DateTime startTime;
@HiveField(1)
int durationMinutes; // 实际专注时长
@HiveField(2)
int distractionCount; // 分心次数(简化为计数)
@HiveField(3)
bool completed; // 是否完成
}
// V1.1 再扩展详细分心类型
2.3 动画简化策略
| 原设计 | MVP 简化方案 | 节省开发时间 |
|---|---|---|
| Lottie 粒子背景 | 纯色背景 + CSS 渐变 | 1天 |
| 计时器呼吸动画 | 静态显示 | 0.5天 |
| 成就徽章弹出 | 简单文字卡片淡入 | 1天 |
| 底部弹窗拖拽 | 标准 showModalBottomSheet | 0.5天 |
总计节省: 3天开发时间
三、上线前必备清单
3.1 应用商店准备
iOS App Store
- 开发者账号 ($99/年,需提前注册)
- App 图标 1024×1024 (无透明通道,必须)
- 截图 至少3张 (6.5" iPhone)
- 建议: Home页 | Focus页 | Complete页
- 隐私政策链接 (托管在 GitHub Pages)
- 应用描述 (英文,150-200字)
- 关键词 (最多100字符)
- 建议: focus,timer,pomodoro,gentle,ADHD,productivity,neurodivergent
Google Play Store
- 开发者账号 ($25 一次性)
- App 图标 512×512
- 截图 至少2张 + 1张横幅图 (可选)
- 隐私政策链接
- 内容分级问卷 (选择 "Everyone")
- 短描述 (80字) + 完整描述 (4000字)
3.2 合规文档(必须完成)
优先级 P0:
- privacy-policy.md - 需填写开发者信息
- Terms of Service (服务条款) - 简单版即可
- Support Email (必须可用)
模板待补充:
- 应用商店描述文案(中英文)
- 关键词优化列表
- ASO 元数据表格
3.3 测试清单(上线前必测)
功能测试
- 计时器倒计时准确(误差 < 1秒/分钟)
- "I got distracted" 不中断计时
- 数据持久化(关闭 App 重开数据仍在)
- 完成后统计正确(时长 + 分心次数)
- 暂停/恢复功能正常
平台测试
- iOS 真机测试(至少1台,推荐 iPhone 12+)
- Android 真机测试(至少2台不同品牌)
- 适配刘海屏/水滴屏
- 横竖屏切换不崩溃
边界测试
- 计时到0秒时行为正常
- 快速点击按钮不崩溃
- 本地存储达到上限时处理(建议保留最近100条)
- 系统通知权限被拒绝时提示
性能测试
- 内存占用 < 100MB
- 冷启动时间 < 2秒
- 电池消耗正常(1小时专注 < 5%电量)
四、风险预警与应对
4.1 高风险项(可能导致延期)
| 风险 | 概率 | 影响 | 预防措施 |
|---|---|---|---|
| iOS 审核被拒 | 60% | 延期1-2周 | 提前研读 App Store 审核指南,避免医疗声明 |
| AdMob 账号被封 | 30% | 收入归零 | MVP 先不集成广告,等有用户再加 |
| Flutter 版本兼容问题 | 40% | 延期3-5天 | 使用稳定版 Flutter 3.16+,依赖包固定版本 |
| 真机测试发现严重 Bug | 50% | 延期1周 | 第2周即开始真机测试,不要等到最后 |
4.2 应对策略
Plan A (理想): 4周完成上线 Plan B (现实): 5-6周完成(预留缓冲) Plan C (保底): 先上架 Android(审核更快),iOS 延后
五、MVP 开发路线图(调整版)
Week 1: 核心框架 + 基础 UI
目标: 能跑通主流程,无需完美
- Day 1-2: Flutter 环境搭建 + 项目初始化
- 创建项目结构(参考 ui-design-spec.md)
- 集成 Hive + 配置主题色
- Day 3-4: Home 页 + Focus 页 UI
- 硬编码数据,先实现布局
- 按钮可点击,无实际逻辑
- Day 5-7: 计时器核心逻辑
- 倒计时功能(使用
Timer.periodic) - 暂停/恢复/停止
- 里程碑: 能完整跑一次25分钟计时
- 倒计时功能(使用
Week 2: 数据持久化 + 分心记录
目标: 数据能保存和读取
- Day 8-9: Hive 数据存储
- 定义 FocusSession 模型
- 保存到本地数据库
- Day 10-11: 分心按钮 + Bottom Sheet
- 4种分心类型选择
- 点击后显示鼓励文案(Toast)
- Day 12-14: Complete 页 + 统计逻辑
- 显示当次专注时长
- 计算今日总时长和分心次数
- 里程碑: 能看到历史数据
Week 3: 设置页 + 通知 + 真机测试
目标: 功能完整,开始测试
- Day 15-16: Settings 页面
- 3个预设时长选择(15/25/45分钟)
- 去广告按钮(占位,不实现)
- 隐私政策链接
- Day 17-18: 本地通知
- 计时完成时弹通知
- 处理权限请求
- Day 19-21: 真机测试 + Bug 修复
- iOS 和 Android 各测至少2轮
- 修复崩溃和明显 Bug
- 里程碑: 可以交给朋友测试
Week 4: 上架准备 + 提交审核
目标: 提交 App Store 和 Play Store
- Day 22-23: 应用图标 + 截图制作
- 设计工具: Figma / Canva
- 准备所有尺寸资源
- Day 24-25: 商店页面填写
- 撰写应用描述(参考竞品)
- 上传隐私政策到 GitHub Pages
- Day 26: iOS 提交审核
- 打包 IPA + 上传 App Store Connect
- 提交审核(通常需要1-3天)
- Day 27: Android 提交审核
- 打包 AAB + 上传 Google Play Console
- 提交审核(通常需要1-7天)
- Day 28: 缓冲时间
- 处理审核反馈
- 准备推广素材
六、产品设计补充建议
6.1 增加的必要功能
1. Onboarding 引导页(首次启动)
为什么需要:
- 解释 "I got distracted" 按钮的独特价值
- 降低新用户困惑
设计(2-3页滑动):
页面1:
标题: "Focus without guilt"
说明: "This app is different — it won't punish you for losing focus."
页面2:
标题: "Tap when you get distracted"
说明: "We'll gently remind you to come back. No shame, no stress."
页面3:
标题: "Track your progress"
说明: "See how you're improving, one session at a time."
[Get Started]
实现:
- 使用
SharedPreferences存储是否首次启动 - 使用
PageView实现滑动 - 开发时间: 1天
2. 空状态提示(History 页无数据时)
当前问题: 首次使用时 History 是空的,用户不知道发生了什么
建议设计:
┌─────────────────────────────────┐
│ │
│ 📊 │
│ │
│ No focus sessions yet │
│ │
│ Start your first session │
│ to see your progress here! │
│ │
│ [Start Focusing] │
│ │
└─────────────────────────────────┘
3. 后台计时提醒
当前问题: 用户切到其他 App 可能忘记正在计时
建议实现:
- 进入后台时显示系统通知: "Focus session in progress — 12:34 remaining"
- 使用
flutter_local_notifications持续更新 - 开发时间: 0.5天
4. 计时完成后的行为
当前缺失: 用户看到 Complete 页后,下一步做什么?
建议增加:
- "Take a 5-min break" 按钮(开始休息倒计时)
- "Start another session" 按钮(直接开始)
- "View history" 按钮(查看统计)
6.2 文案优化
当前问题
部分文案过于书面,不够"温柔"
建议修改:
| 原文案 | 优化后 | 理由 |
|---|---|---|
| "Focus Complete" | "Nice work!" | 更口语化 |
| "Distractions: 2 times" | "Got distracted 2 times — that's okay!" | 强化无惩罚感 |
| "Total today: 47 mins" | "You've focused for 47 mins today" | 更个人化 |
增加失败场景文案
场景: 用户点击 "Stop" 提前结束
当前: 无提示 建议:
弹窗:
"Want to stop early?
That's totally fine — you still focused for 12 minutes!"
[Yes, stop] [Keep going]
6.3 成就系统简化(MVP 版)
原方案问题
主题皮肤需要大量设计资源 + 广告收益不确定
MVP 替代方案: 文字徽章
// 简单的里程碑系统
Map<int, String> achievements = {
1: "🌱 First Step", // 完成第1次
5: "🔥 Getting Started", // 完成第5次
10: "⭐ Steady Focus", // 完成第10次
25: "💪 Focus Champion", // 完成第25次
50: "🏆 Focus Master", // 完成第50次
};
显示方式:
- 完成时弹出简单卡片
- Settings 页显示已解锁徽章列表
- 开发时间: 0.5天(比主题系统节省2-3天)
七、商业化路径(上线后)
7.1 MVP 上线策略(免费 + 无广告)
为什么先不加广告?
- ✅ iOS 审核通过率更高(广告常被拒)
- ✅ 用户体验更好,初期口碑传播更快
- ✅ 先验证产品价值,再考虑变现
V1.0 → V1.1 加广告时机:
- 下载量 > 1000
- 日活用户 > 100
- App Store 评分稳定在 4.5+
7.2 优化后的变现模型
| 版本 | 变现方式 | 说明 |
|---|---|---|
| V1.0 (MVP) | 完全免费 | 快速获取用户,验证留存 |
| V1.1 | 激励视频广告 | 看广告解锁"额外鼓励语" |
| V1.2 | IAP 去广告 | $1.99(比原方案便宜,提高转化) |
| V2.0 | Pro 订阅 | $0.99/月,含白噪音 + PDF 报告 |
7.3 核心指标追踪(手动记录)
MVP 阶段(前30天):
- 下载量(每天记录 App Store / Play Store 数据)
- 留存率: Day1 / Day7 / Day30
- 完成专注次数: 人均完成数
- Crash 率(使用 Firebase Crashlytics 免费版)
目标:
- Day1 留存 > 40%
- Day7 留存 > 20%
- 人均完成 > 3次/周
如果达不到: 说明产品体验有问题,需要迭代核心功能
八、应用商店 ASO 素材模板
8.1 App Store 文案
App 名称:
FocusBuddy - Gentle Focus Timer
副标题 (30字符):
Focus without guilt or shame
描述 (英文):
FOCUS WITHOUT GUILT
FocusBuddy is different. It won't punish you for getting distracted.
🌿 TAP "I GOT DISTRACTED" ANYTIME
No shame. No stress. Just a gentle reminder to come back.
💚 BUILT FOR NEURODIVERGENT MINDS
If traditional focus timers make you feel bad, this one's for you.
📊 TRACK YOUR PROGRESS
See how you're improving — without judgment.
✨ PRIVATE & OFFLINE
All your data stays on your device. No cloud sync. No tracking.
---
"Finally, a focus app that doesn't make me hate myself." - Beta tester
Made with care for people who think differently.
关键词 (100字符,逗号分隔):
focus,timer,pomodoro,ADHD,productivity,gentle,neurodivergent,study,work,mindful
8.2 Google Play 文案
短描述 (80字):
A focus timer that won't shame you for getting distracted. Track gently.
完整描述:
(同 App Store,格式转为 Markdown)
WHAT MAKES IT DIFFERENT?
• Tap "I got distracted" without stopping the timer
• Get gentle encouragement instead of punishment
• See patterns in what pulls you away
• 100% offline and private
WHO IS IT FOR?
Perfect for anyone who struggles with traditional focus apps:
✓ ADHD / ADD
✓ Anxiety
✓ Autistic individuals
✓ Anyone with attention challenges
FREE. NO ADS (for now). NO TRACKING.
Download and start focusing — gently.
九、上线后 30 天行动计划
Week 1: 冷启动(目标: 100 下载)
- Day 1: 在 r/ADHD 发帖分享(参考产品设计方案)
- Day 3: 在 ProductHunt 首发(周三上线效果最好)
- Day 5: 发 TikTok 短视频(展示 "I got distracted" 按钮)
- Day 7: 统计数据,回复所有评论和反馈
Week 2-3: 社区渗透(目标: 500 下载)
- 在 ADHD 相关 Discord/Slack 分享
- 联系 3-5 个 ADHD YouTuber(提供 Pro 版兑换码)
- 在 Indie Hackers / Hacker News 分享开发故事
Week 4: 优化迭代
- 分析用户反馈,提取高频需求
- 修复 Crash 和严重 Bug
- 规划 V1.1 功能(根据数据决定)
十、应该删除/推迟的原方案内容
❌ 删除(与 MVP 理念冲突)
- TopOn 广告聚合 - 过度优化,AdMob 够用
- Export PDF Report - 用户需求未验证
- Body Doubling Lite - 概念模糊,延后到 V2.0
⏸️ 推迟到 V1.1+
- 主题皮肤系统 → 简化为文字徽章
- 白噪音播放 → 等有收入后再做
- 每周趋势图表 → 先用简单列表
- 时长滑动条 → 固定25分钟 + 设置页3选项
✅ 保留(核心差异化)
- ✅ "I got distracted" 按钮
- ✅ 4种分心分类
- ✅ 鼓励文案库
- ✅ 无惩罚机制
- ✅ 100% 离线
总结: MVP 成功的3个关键
1. 功能聚焦
只做最能体现差异化的功能 - "I got distracted" + 鼓励文案
2. 快速上线
4周必须提交审核 - 延期会导致热情消退
3. 数据驱动
上线后看留存率 - 如果 Day7 留存 < 20%,说明产品不成立
接下来的行动:
- 确认是否接受 MVP 功能精简建议
- 补充 隐私政策 开发者信息
- 准备开发者账号(iOS $99 + Android $25)
- 开始 Week 1 开发
Document Status: ✅ Ready for Review Next Update: 根据实际开发进度调整里程碑