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
- Clone the repository.
- Open
DiveEquipmentServiceApp.xcodeprojin Xcode. - Select a simulator or device and run.
License
This project is licensed under the MIT License — see LICENSE for details.