Files
FocusBuddy/mvp-launch-checklist.md
2025-11-22 18:17:35 +08:00

559 lines
16 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 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 依赖包精简(减少集成风险)
**必须集成:**
```yaml
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:**
```yaml
# workmanager: ^0.5.2 # 后台任务MVP 不需要)
# lottie: ^3.0.0 # 动画(用静态图标替代)
# just_audio: ^0.9.36 # 音频(延后)
# pdf: ^3.10.0 # 报告导出(延后)
```
**广告延后到 V1.0.1:**
```yaml
# google_mobile_ads: ^4.0.0 # 先上架审核通过再加广告
```
### 2.2 数据结构简化
```dart
// 最小可行数据模型
@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:**
- [x] [privacy-policy.md](privacy-policy.md) - 需填写开发者信息
- [ ] **Terms of Service** (服务条款) - 简单版即可
- [ ] **Support Email** (必须可用)
- 建议: focusbuddy.support@gmail.com
**模板待补充:**
- [ ] 应用商店描述文案(中英文)
- [ ] 关键词优化列表
- [ ] 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 审核指南](https://developer.apple.com/app-store/review/guidelines/),避免医疗声明 |
| **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](ui-design-spec.md:589-619)
- 集成 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 替代方案: 文字徽章**
```dart
// 简单的里程碑系统
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 上线策略(免费 + 无广告)
**为什么先不加广告?**
1. ✅ iOS 审核通过率更高(广告常被拒)
2. ✅ 用户体验更好,初期口碑传播更快
3. ✅ 先验证产品价值,再考虑变现
**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 发帖分享(参考[产品设计方案](product-design.md:179-188)
- 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 理念冲突)
1. **TopOn 广告聚合** - 过度优化AdMob 够用
2. **Export PDF Report** - 用户需求未验证
3. **Body Doubling Lite** - 概念模糊,延后到 V2.0
### ⏸️ 推迟到 V1.1+
1. **主题皮肤系统** → 简化为文字徽章
2. **白噪音播放** → 等有收入后再做
3. **每周趋势图表** → 先用简单列表
4. **时长滑动条** → 固定25分钟 + 设置页3选项
### ✅ 保留(核心差异化)
1. ✅ "I got distracted" 按钮
2. ✅ 4种分心分类
3. ✅ 鼓励文案库
4. ✅ 无惩罚机制
5. ✅ 100% 离线
---
## 总结: MVP 成功的3个关键
### 1. 功能聚焦
**只做最能体现差异化的功能** - "I got distracted" + 鼓励文案
### 2. 快速上线
**4周必须提交审核** - 延期会导致热情消退
### 3. 数据驱动
**上线后看留存率** - 如果 Day7 留存 < 20%,说明产品不成立
---
**接下来的行动:**
1. [ ] 确认是否接受 MVP 功能精简建议
2. [ ] 补充 [隐私政策](privacy-policy.md:4) 开发者信息
3. [ ] 准备开发者账号iOS $99 + Android $25
4. [ ] 开始 Week 1 开发
---
**Document Status:** ✅ Ready for Review
**Next Update:** 根据实际开发进度调整里程碑