# OpenClimb for iOS The native iOS, watchOS, and widget client for OpenClimb, built with Swift and SwiftUI. ## Project Structure This is a standard Xcode project. The main app code is in the `OpenClimb/` directory. - `Models/`: Swift `Codable` models (`Problem`, `Gym`, `ClimbSession`) that match the Android app. - `ViewModels/`: App state and logic. `ClimbingDataManager` is the core here, handling data with SwiftData. - `Views/`: All the SwiftUI views. - `AddEdit/`: Views for adding/editing gyms, problems, etc. - `Detail/`: Detail views for items. - `Services/`: Handles HealthKit and sync server communication. - `Utils/`: Helper functions and utilities. ## Other Targets - `OpenClimbWatch/`: The watchOS app for tracking sessions. - `ClimbingActivityWidget/`: A home screen widget. - `SessionStatusLive/`: A Live Activity for the lock screen. The app is built to be offline-first. All data is stored locally on your device and works without an internet connection.