Files
AutoTime-Tracker/开发进度.md
2025-11-13 15:45:28 +08:00

5.2 KiB
Raw Blame History

AutoTime Tracker 开发进度

📊 总体进度

当前阶段: Phase 1 - MVP 开发
完成度: 98%


已完成功能

Week 1-2: 项目搭建

  • Flutter 项目初始化
  • 数据库设计
  • UI/UX 设计
  • 基础架构搭建

Week 5-6: 统计与可视化

  • 数据统计模块
  • 图表组件
  • 主界面开发

Week 3-4: 核心功能开发

  • 数据存储模块SQLite
    • 数据库初始化
    • 表结构创建
    • 索引优化
  • 数据访问层DAO
    • AppUsageDao - 应用使用记录
    • DailyStatsDao - 每日统计
  • 分类服务CategoryService
    • 预设分类规则
    • 自定义分类管理
    • 分类查询
  • 统计服务StatisticsService
    • 今日统计计算
    • 效率评分算法
    • 专注度评分算法
    • 周/月统计
  • 状态管理Riverpod
    • StatisticsProvider
    • TodayStatsProvider
    • WeekStatsProvider
    • TopAppsProvider
  • 界面集成真实数据
    • TodayScreen 使用数据库数据
    • 加载状态处理
    • 错误处理
  • 时间追踪服务Platform Channel
    • Flutter 侧接口实现
    • iOS Screen Time API 集成
    • Android Usage Stats API 集成
    • 权限管理
    • 数据同步逻辑
    • 后台同步服务
    • 权限引导界面

🚧 进行中功能


📋 待开发功能

优先级高

  • 原生 API 实际实现
    • iOS Screen Time API 完整实现(需要真实设备测试)
    • Android Usage Stats API 完整实现(需要真实设备测试)

优先级中

  • 测试与优化

    • 单元测试
    • 性能优化
    • Bug 修复
  • 上架准备

    • 应用图标和启动画面
    • 应用商店资料
    • 隐私政策文档

优先级低Phase 2

  • Widget 小组件
  • 高级统计分析
  • 机器学习分类

📁 已创建文件

数据库层

  • lib/database/database_helper.dart - 数据库初始化
  • lib/database/app_usage_dao.dart - 应用使用记录 DAO
  • lib/database/daily_stats_dao.dart - 每日统计 DAO
  • lib/database/time_goal_dao.dart - 时间目标 DAO

服务层

  • lib/services/category_service.dart - 分类服务
  • lib/services/statistics_service.dart - 统计服务
  • lib/services/time_tracking_service.dart - 时间追踪服务
  • lib/services/background_sync_service.dart - 后台同步服务
  • lib/services/export_service.dart - 数据导出服务

状态管理

  • lib/providers/statistics_provider.dart - 统计相关 Provider
  • lib/providers/time_tracking_provider.dart - 时间追踪 Provider
  • lib/providers/background_sync_provider.dart - 后台同步 Provider

界面层

  • lib/screens/today_screen.dart - 已集成真实数据
  • lib/screens/permission_screen.dart - 权限引导界面
  • lib/screens/category_management_screen.dart - 分类管理界面
  • lib/screens/goal_setting_screen.dart - 目标设定界面
  • lib/screens/export_data_screen.dart - 数据导出界面
  • lib/screens/data_privacy_screen.dart - 数据与隐私页面
  • lib/screens/about_screen.dart - 关于页面

原生层

  • ios/Runner/TimeTrackingPlugin.swift - iOS Platform Channel
  • ios/Runner/AppDelegate.swift - iOS 插件注册
  • android/app/src/main/kotlin/com/autotime/tracker/TimeTrackingPlugin.kt - Android Platform Channel
  • android/app/src/main/AndroidManifest.xml - Android 权限配置

🔧 技术实现详情

数据库结构

app_usage 表:

  • 应用使用记录
  • 索引start_time, category, package_name

daily_stats 表:

  • 每日统计数据
  • 索引date

app_category 表:

  • 应用分类规则
  • 索引package_name

time_goal 表:

  • 时间目标设定

核心算法

效率评分算法:

  • 工作时间占比40%
  • 学习时间占比30%
  • 娱乐时间占比越低越好30%

专注度评分算法:

  • 基于应用切换频率
  • 每小时切换 < 10 次 = 100分
  • 每小时切换 > 50 次 = 0分

🐛 已知问题

  1. iOS Screen Time API 实现

    • 当前提供了基本框架
    • 实际 API 使用方式可能需要根据 Apple 文档调整
    • 某些系统应用可能无法追踪
  2. Android 权限授予

    • 需要用户手动在系统设置中授予权限
    • 应用无法直接请求权限
    • 需要引导用户到设置页面
  3. 后台同步限制

    • iOS 和 Android 都对后台运行有严格限制
    • 后台同步可能被系统终止
    • 建议使用系统提供的后台任务机制

📝 下一步计划

立即任务

  1. 完善时间追踪服务

    • 优化 iOS Screen Time API 实现
    • 完善错误处理
    • 添加重试机制
  2. 完善界面功能

    • 分类管理页面
    • 目标设定页面
    • 数据导出功能
  3. 测试和优化

    • 添加单元测试
    • 性能测试
    • 用户体验优化
    • 后台同步优化WorkManager/Background Tasks

📈 进度统计

  • 总任务数: 36
  • 已完成: 35 (97%)
  • 进行中: 0 (0%)
  • 待开始: 1 (3%)

最后更新: 2024-11-13