GitHunt
FO

follesoe/DiveEquipmentServiceApp

DiveEquipmentServiceApp

An iOS app for tracking scuba diving equipment and their service schedules. Keep your gear safe and up to date by logging service records and receiving notifications when maintenance is due.

Features

  • Equipment inventory — Catalog your dive gear across categories: tanks, regulators, BCDs & wings, dive computers, suits, masks & fins, lights, and accessories.
  • Service tracking — Log service records with date, description, and service provider for each piece of equipment.
  • Smart status indicators — Color-coded badges show whether equipment is OK, due soon (within 30 days), or overdue for service.
  • Notifications — Automatic reminders at 30 days, 7 days, and on the service due date.
  • CloudKit sync — Data syncs across devices via iCloud.
  • Localization — UI strings are localized via Localizable.xcstrings.

Requirements

  • iOS 26.2+
  • Xcode 26+
  • Swift 6

Architecture

The app is built with SwiftUI and SwiftData.

DiveEquipmentServiceApp/
├── DiveServiceApp.swift          # App entry point, ModelContainer setup
├── Models/
│   ├── Equipment.swift           # Equipment model with service interval logic
│   ├── EquipmentCategory.swift   # Category enum and recommended intervals
│   └── ServiceRecord.swift       # Service record model
├── Views/
│   ├── ContentView.swift         # NavigationSplitView root
│   ├── EquipmentListView.swift   # Equipment list grouped by category
│   ├── EquipmentRowView.swift    # Row with status badge
│   ├── EquipmentDetailView.swift # Detail view with service history
│   ├── AddEquipmentView.swift    # Form to add new equipment
│   ├── AddServiceView.swift      # Form to log a service record
│   └── ServiceStatusBadge.swift  # Color-coded status indicator
└── Utilities/
    ├── ServiceStatus.swift       # Service status enum (ok/dueSoon/overdue)
    └── NotificationManager.swift # Local notification scheduling

Getting Started

  1. Clone the repository.
  2. Open DiveEquipmentServiceApp.xcodeproj in Xcode.
  3. Select a simulator or device and run.

License

This project is licensed under the MIT License — see LICENSE for details.

Languages

Swift100.0%

Contributors

MIT License
Created March 21, 2026
Updated March 21, 2026