App.Demo.mov
TimerPlus is a SwiftUI iOS focus timer built around a Pomodoro-inspired study and break cycle. The app uses a visual, hourglass-like countdown experience to make each session feel more tangible, with separate study and break timers, quick settings, and a simple start-pause-resume flow.
TimerPlus is designed for focused work sessions such as studying, reading, or deep work. The home screen shows your configured study and break lengths, the timer screen animates the remaining session visually, and the settings screen lets you adjust the timer behavior before you begin.
- Study timer with configurable session length
- Break timer with configurable break length
- Hourglass-inspired visual countdown using a shrinking colored timer field
- Pause, resume, and stop controls during a session
- Manual skip from study to break
- Optional automatic transition between study and break phases
- Optional sound cue when a timer switches phases
- Clean SwiftUI navigation flow between home, timer, break, and settings screens
The main screen displays the current study and break durations and provides a single entry point to start a study session.
The timer view runs the countdown and changes color depending on the current phase:
- Blue for study time
- Red for break time
Users can pause, resume, stop, or move early to the next phase.
When a study session ends, the app can route to a break screen or jump directly into the break timer if auto-start is enabled.
The settings screen allows users to configure:
- Study duration
- Break duration
- Automatic timer start between phases
- Sound playback on timer switch
- Swift
- SwiftUI
- Xcode project structure for iOS
- ObservableObject state management via
TimerSettings
timerplus/
├── README.md
└── final/
├── final/
│ ├── ContentView.swift
│ ├── TimerView.swift
│ ├── BreakView.swift
│ ├── SettingsView.swift
│ ├── TimerSettings.swift
│ ├── finalApp.swift
│ ├── Persistence.swift
│ └── Assets.xcassets/
└── final.xcodeproj/
- The app launches into the home screen and loads default timer values from a shared
TimerSettingsobject. - Starting a session opens the study timer.
- The timer counts down once per second and updates the UI in real time.
- When the study timer completes, the app transitions to a break flow.
- If auto-start is enabled, the break timer begins immediately.
- If auto-start is disabled, the app first shows a break screen before the break session starts.
- When the break timer completes, the app either returns home or restarts the study cycle depending on the current settings.
- macOS with Xcode installed
- Swift 5 support in Xcode
- iOS Simulator or physical iPhone/iPad
Open the project at:
- Open the Xcode project.
- Select the
finalscheme. - Choose an iOS Simulator or connected device.
- Run the app with Xcode.
The current Xcode project configuration targets iOS 18.5 and supports iPhone and iPad device families.
- Timer settings are currently stored in memory for the active app session only.
- The project still includes Xcode Core Data template files, but the timer flow does not currently use persistent storage.
- The app target and scheme are still named
final, even though the repository is named TimerPlus.
- Add session history and focus statistics
- Improve the hourglass visual with richer animation and transitions
- Add notifications or background timer support
- Add tests for timer state transitions and settings behavior
This project is a lightweight focus timer built to support structured study sessions with a calm, visual interface. It is best suited for users who want a straightforward Pomodoro-style workflow without extra complexity.