GymNote is a simple and privacy-focused fitness tracker for iOS.
It helps you record your workouts, track progress, and manage your favorite exercises — all offline and stored securely on your device.
- Swift 5+
- UIKit
- MVVM Architecture
- Core Data (local storage)
- SnapKit (Auto Layout)
- Haptic Feedback
| Field | Type | Description |
|---|---|---|
id |
UUID | Unique workout identifier |
date |
Date | Workout creation date |
notes |
String? | Optional note about the workout |
| Field | Type | Description |
|---|---|---|
id |
UUID | Unique exercise identifier |
name |
String | Exercise name |
bodyPart |
String? | Target muscle group |
isCustom |
Bool | Indicates if the exercise is user-created |
isActive |
Bool | Used for filtering active presets |
| Field | Type | Description |
|---|---|---|
id |
UUID | Unique set identifier |
reps |
Int | Number of repetitions |
weight |
Double | Weight used (kg) |
workout |
Relationship | Linked Workout |
exercise |
Relationship | Linked Exercise |
- ✅ Create and manage workouts
- ✅ Add and edit exercise sets
- ✅ Track your training progress
- ✅ Manage preset and custom exercises
- ✅ Minimalistic interface designed with UIKit + SnapKit
- ✅ Works completely offline — no internet required
- ✅ All data stays safely on your device
The app follows the MVVM (Model-View-ViewModel) architecture.
Each module (Main, PresetPicker, Settings) has its own Model, ViewModel, and View layers.
Data persistence is handled by Core Data, and layout is built programmatically with SnapKit.
- Xcode 16.2 or later
- iOS 17+ SDK
- Clone the repository:
git clone https://github.com/umutkonmus/GymNote.git
- Open
GymNote.xcodeprojorGymNote.xcworkspacein Xcode. - Select a target device or simulator and press Run (⌘R).
GymNote never connects to the internet.
All workouts, presets, and app settings are stored locally on your device using Core Data.
Your fitness data is never uploaded or shared with any external service.
Track your daily workouts and progress.
Select from preset exercises or create your own custom ones.
For any issues, questions, or feedback:
📧 contact@umutkonmus.com