计时器:帮助您遵循番茄工作法。它会显示剩余的工作/休息时间以及剩余的周期。您可以通过点击来开始/暂停。第一次点击计时器会创建一个工作时段。您可以将工作时段视为您的典型工作日。计时器会在工作/休息周期之间自动继续。您无法跳过某个时间段。但是,您可以暂停计时器。
后台模式:您可以将 Pomosh 应用置于后台,Pomosh 会在工作或休息时间结束时通知您。您需要点击启动计时器才能进入下一时段(休息或工作)。
设置:Pomosh 非常灵活。您可以轻松更改工作和休息时长。此外,您还可以设置一个训练环节的总循环次数,具体取决于您的训练量和节奏。长时间的休息可以触发特定回合,并自定义时长。如果您一个回合的训练时间是 1 小时,那么您需要长时间的休息。我猜。
音效:时间到时,会有铃声提示。当然,您也可以关闭。
1. 应用架构模式
- MVVM (Model-View-ViewModel) 架构
- 多平台支持: iOS + watchOS 双平台原生应用
- 共享数据模型: 通过 PomoshTimer 类实现逻辑复用
- 响应式编程: 基于 @ObservedObject 和 @Published 的数据绑定技术栈分析
核心技术框架
- SwiftUI: 100% 纯 SwiftUI 构建,支持声明式UI
- Combine: 响应式数据流管理
- UserDefaults: 本地设置持久化存储
- AVFoundation: 音效播放系统
- UserNotifications: 后台通知支持
- ClockKit: Apple Watch 表盘集成
- Core Data: 数据持久化
设计亮点:
- 使用 @Published 实现自动UI更新
- UserDefaults 实时同步设置
- 音效系统与触觉反馈集成
2. 环形进度条 (TimerRing)
- 技术实现: Circle().trim() + LinearGradient
- 动画效果: .animation(.linear) 流畅进度更新
- 交互设计: 整个环形区域可点击操作
- 视觉层次: 阴影、渐变、3D旋转效果
3. Apple Watch 集成
- 独立计时器: Watch 端独立运行逻辑
- 表盘复杂功能: 通过 ComplicationController 支持
- 分页界面: PagerView 实现多屏切换
- 触觉反馈: WKInterfaceDevice.current().play() 手表特有反馈
量化成果分析
- 总文件数: 21个 Swift 源文件
- 代码行数: 约 1,500+ 行纯 Swift 代码
- 架构复用率: 90% 核心逻辑在两平台间共享
- UI 组件化: 6个主要可复用组件