Time Scopes is a SwiftUI iOS app for visualizing life-time metrics, calendar and reminder events, and Screen Time usage in the Pulse tab.
Features
- Home dashboard with life-time and remaining-time metrics.
- Calendar and Reminders timeline views (read-only).
- Pulse Screen Time reports (weekly, daily, and today).
- Pulse Daily Journal now accepts direct entry capture without rotating prompt questions.
- Preferences tab for managing permissions.
Requirements
- iOS 18.5 deployment target (see project settings).
- Screen Time data requires a real device and user authorization.
Build
open "Time Scopes.xcodeproj"xcodebuild -scheme "Time Scopes" buildTests (TDD)
xcodebuild -scheme "Time Scopes" test -destination "platform=iOS Simulator,name=iPhone 17"scripts/ci/run_tests_with_coverage.shscripts/ci/run_tests_with_coverage.shexecutes tests with code coverage and applies a minimum coverage gate.- Journal changes are covered by Pulse view rendering tests and WidgetSnapshot legacy decode coverage.
- Weekly Rhythm widget chart bounds are covered by
WidgetLayoutMetricsTests. - Coverage threshold can be overridden per run:
MIN_COVERAGE=55 scripts/ci/run_tests_with_coverage.sh
- CI runs automatically on
mainandcodex/**pushes and on every pull request (.github/workflows/ios-tests.yml).
Permissions
- Calendar access (EventKit).
- Reminders access (EventKit).
- Screen Time access (FamilyControls + DeviceActivity).
Project Structure
Time Scopes/SwiftUI app source.Time Scopes/App/View/screens and reusable views.Time Scopes/App/Domain/models and calculation services.Time Scopes/App/Data/persistence and store abstractions.Time Scopes/App/Events/andTime Scopes/App/User/time/event calculations and user state.Time Scopes/App/Utility/UI helpers and date utilities.PulseReportExtension/DeviceActivity report extension used by Pulse.Resource/design assets and screenshots (not shipped in the app bundle).