UI Architecture (iOS + Mac Catalyst)

Overview of the app’s user interface. For component details, see linked notes.

Navigation

  • Single unified ContentView (no tabs)
  • Settings via gear icon (top right) - 405-settings-sheet
  • Floating play button (bottom center)

Main Sections

SectionDescriptionDetails
Running TimersActive timers at top406-record-editor
TodayCompleted records for todaySwipe to delete with 412-deletion-toast
HistoryFiltered records with export407-history-section

State Management

Key Components

ComponentPurpose
406-record-editorEdit running timers and completed records
407-history-sectionDate/tag filtering, Grid table, export
408-date-range-pickerPreset buttons + custom range
409-tag-filterTag toggle buttons with context menu
410-flow-layoutCSS flex-wrap style layout
411-share-export-sheetExport format selection
412-deletion-toastUndo support for deletions

File Structure

Sources/
  TimeTrackerApp.swift           # Entry point, AppState
  AppIntents.swift               # Shortcuts integration
  Services/
    StorageLocationManager.swift # Folder selection
  Views/
    ContentView.swift            # Main view (~105 lines)
    Components/                  # Reusable components
    History/                     # History-related views
    Sections/                    # Main sections
    Settings/                    # Settings views

Mac Catalyst

  • Title bar hidden via SceneDelegate
  • Native save panel for exports
  • Traffic lights visible

App Intents

IntentDescription
StartTimerIntentStart timer with optional tag/comment
StopTimerIntentStop all running timers

Related