aidHere 时间追踪器
功能
首次启动时从API获取用户记录,将其缓存,并允许用户添加更多记录或更新现有记录。
-
允许用户查看不同时期(即每日、每周和每月)的报告。
-
允许用户在深色模式和浅色模式之间切换
After First restart, mock data for the day before yesterday is added, user can see the records and trends for the last three days.
实施
使用BLoC Cubit作为状态管理,并使用HydratedCubit实现本地存储。
使用Freezed生成器生成模型和cubits。这有助于我们实现不变性和简化的状态处理。
Dio用于API请求。
Cubits
App Cubit
这用于处理深色模式配置,并在应用程序关闭后存储用户偏好。
Tracker Cubit
此cubit从API获取用户记录,将其保存到本地存储以备后用,并在应用程序重新启动前模拟当天的用户数据。
Repository
处理API请求,在Tracker cubit中初始化。
架构
CLEAN BLoC架构,
- 核心
- Constants — 应用常量值
- Models — 实体
- 领域层
- API
- Cubits
- Repository
- UI
- 主屏幕
- widgets/ — 父屏幕的子小部件。
- widgets/ — 应用的子小部件
- 主屏幕
测试
为两个Cubits都添加了BLoC测试。