Skip to content

Repository files navigation

๐Ÿ‹๏ธ ShadowLift

ShadowLift is a production-ready iOS fitness tracking app built with 100% native Apple technologies. This sophisticated, performance-optimized workout logging and planning app delivers a complete training experience with AI-powered insights, HealthKit integration, and advanced analyticsโ€”all with zero external dependencies.

๐Ÿš€ Currently in TestFlight Beta - Real users, real workouts, real results.

Hero section website

๐Ÿ“ธ Screenshots

Today's Workout Workout Calendar Muscle Progress Graph AI Workout Summary

๐ŸŒŸ Core Features

๐Ÿ’ช Workout Tracking

  • Custom Workout Splits โ€“ Create unlimited workout routines (Push/Pull/Legs, Upper/Lower, etc.)

  • Exercise Tracking โ€“ Detailed set/rep/weight logging with automatic progression tracking

  • 10 Muscle Groups โ€“ Chest, Back, Biceps, Triceps, Shoulders, Quads, Hamstrings, Calves, Glutes, Abs

  • Multiple Set Types โ€“ Warm-up, Failure, Rest-Pause, Drop Sets, Bodyweight

  • Auto Day Progression โ€“ Automatically advances through your split based on calendar

  • Workout Timer โ€“ Automatic workout duration tracking

    Today's Workout

๐Ÿ“… Calendar & History

  • Workout Calendar โ€“ Visual history with date-based workout retrieval

  • Complete History โ€“ Access all past workouts with detailed logs

  • Progress Tracking โ€“ See your training patterns and consistency over time

    Calendar

โšก Performance & Sync

  • Offline First โ€“ Full functionality without internet connection
  • CloudKit Sync โ€“ Cross-device sync with intelligent network monitoring
  • Performance Optimized โ€“ No "gym lag" - tested under real gym conditions (60+ min sessions)
  • 5-Second Timeout โ€“ CloudKit operations never block UI

๐Ÿฅ HealthKit Integration

  • Bidirectional Weight Sync โ€“ Read and write body weight to Apple Health

  • BMI Tracking โ€“ Auto-calculated with visual gauge display

  • Height Tracking โ€“ Syncs with HealthKit

  • Workout Export โ€“ Writes workout sessions to Apple Health

  • Weight Charts โ€“ Historical weight visualization

    BMI Tracking

๐Ÿ”’ Premium Features (โ‚ฌ2.99/month or โ‚ฌ29.99/year)

๐Ÿค– AI Workout Summaries (iOS 26+)

  • On-Device AI Analysis โ€“ Uses Apple's FoundationModels (100% private)

  • Performance Trends โ€“ Strength progress and volume analysis

  • Muscle Balance Detection โ€“ Identifies training imbalances

  • Personalized Recommendations โ€“ AI-driven workout suggestions

    AI Summary

๐ŸŽฏ Personal Record (PR) Tracking

  • Automatic PR Detection โ€“ Tracks 1RM, 5RM, 10RM, and total volume PRs
  • Historical Comparison โ€“ See how you stack up against previous workouts
  • PR Notifications โ€“ Get notified when you hit a new personal record

๐Ÿ“ธ Progress Photos

  • Photo Timeline โ€“ Track visual progress with pose guidance
  • Before/After Comparisons โ€“ Swipe to compare photos
  • Body Part Categorization โ€“ Front, Back, Side, Full Body, Custom
  • CloudKit Sync โ€“ Photos sync across all your devices

๐Ÿ“š Pre-Built Templates

  • Push/Pull/Legs (PPL) โ€“ Classic 6-day split
  • PHAT โ€“ Power Hypertrophy Adaptive Training
  • Upper/Lower Split โ€“ 4-day training program
  • Arnold Split โ€“ Classic bodybuilding routine
  • Full Body โ€“ 3-day full body routine

๐Ÿ“ˆ Advanced Streak Analytics

  • Current Streak Tracking โ€“ Days in a row with workouts

  • Longest Streak Record โ€“ Track your personal best

  • Rest Day Logic โ€“ Configurable rest days per week (streak-safe)

  • Weekly Pattern Charts โ€“ Visualize training consistency

  • Streak Predictions โ€“ See projected milestones

    Profile with Muscle Analytics

๐ŸŽจ Custom Appearance

  • 5 Accent Colors โ€“ Blue, Green, Purple, Pink, Orange

  • Matching App Icons โ€“ Themed icons for each color

  • Dark Mode Support โ€“ Beautiful in light and dark themes

    Settings

๐ŸŽ Free Features

  • โœ… Unlimited Workouts
  • โœ… Custom Splits
  • โœ… Exercise Tracking
  • โœ… Calendar History
  • โœ… HealthKit Integration
  • โœ… CloudKit Sync
  • โœ… BMI Calculator
  • โœ… Muscle Group Charts
  • โœ… Import/Export Splits (.shadowliftsplit files)

๐Ÿ—๏ธ Technical Architecture

Tech Stack

  • Language: Swift 5.9+
  • Framework: 100% SwiftUI (no UIKit)
  • Storage: SwiftData for persistent data
  • Authentication: Apple Sign In
  • AI: FoundationModels (iOS 26+, on-device)
  • Health: HealthKit
  • Sync: CloudKit with intelligent network monitoring
  • Photos: PhotosUI, PhotoKit, AVFoundation
  • Architecture: MVVM + ObservableObject
  • Target: iOS 26.0+

Zero External Dependencies

  • โŒ No CocoaPods
  • โŒ No Swift Package Manager packages
  • โœ… Pure Apple frameworks only

Core Data Models

Exercise Model

@Model class Exercise: ObservableObject, Codable {
    @Attribute(.unique) var id: UUID
    var name: String
    var sets: [Set]?                    // Nested SwiftData model
    var repGoal: String                 // "8-12", "5x5", "AMRAP"
    var muscleGroup: String
    var exerciseOrder: Int
    var done: Bool
    var completedAt: Date?
    var createdAt: Date
    var startTime: String
    var endTime: String
}

Set Model (Nested)

@Model class Set {
    var weight: Double              // kg or lbs
    var reps: Int
    var failure: Bool               // Trained to failure
    var warmUp: Bool                // Warm-up set
    var restPause: Bool             // Rest-pause set
    var dropSet: Bool               // Drop set
    var bodyWeight: Bool            // Bodyweight exercise
    var time: String
    var note: String
}

Other Models

  • Split: Workout routine with multiple days
  • Day: Single workout day with exercises
  • DayStorage: Calendar-indexed completed workouts
  • UserProfile: User data, streaks, stats
  • ProgressPhoto: Progress photo tracking
  • PersonalRecord: PR tracking data
  • SplitTemplate: Pre-built workout programs

Project Statistics

  • ~20,748 lines of Swift code
  • 95 Swift files
  • 14 SwiftData models
  • 4 managers (User, Appearance, Photo, PR)
  • 23 settings views
  • 22 workout views
  • Comprehensive test coverage

๐Ÿ“ฑ App Structure

ShadowLift/
โ”œโ”€โ”€ GymlyApp.swift              # App entry point
โ”œโ”€โ”€ ToolBar.swift               # Main TabView navigation
โ”œโ”€โ”€ Config.swift                # Global app state singleton
โ”œโ”€โ”€ Models/                     # SwiftData models (14 files)
โ”‚   โ”œโ”€โ”€ Exercise.swift
โ”‚   โ”œโ”€โ”€ Day.swift
โ”‚   โ”œโ”€โ”€ Split.swift
โ”‚   โ”œโ”€โ”€ DayStorage.swift
โ”‚   โ”œโ”€โ”€ UserProfile.swift
โ”‚   โ”œโ”€โ”€ ProgressPhoto.swift
โ”‚   โ””โ”€โ”€ PersonalRecord.swift
โ”œโ”€โ”€ Logic/                      # Business logic
โ”‚   โ”œโ”€โ”€ WorkoutViewModel.swift  # Central coordinator (41,290 lines)
โ”‚   โ””โ”€โ”€ iCloudSyncManager.swift
โ”œโ”€โ”€ Workout/                    # Workout views (22 files)
โ”‚   โ”œโ”€โ”€ TodayWorkoutView.swift
โ”‚   โ”œโ”€โ”€ ExerciseDetailView.swift
โ”‚   โ”œโ”€โ”€ SplitsView.swift
โ”‚   โ”œโ”€โ”€ SplitTemplatesView.swift
โ”‚   โ””โ”€โ”€ ProgressPhotoTimelineView.swift
โ”œโ”€โ”€ Calendar/                   # Calendar views (3 files)
โ”‚   โ”œโ”€โ”€ CalendarView.swift
โ”‚   โ”œโ”€โ”€ CalendarDayView.swift
โ”‚   โ””โ”€โ”€ CalendarExerciseView.swift
โ”œโ”€โ”€ Settings/                   # Settings views (23 files)
โ”‚   โ”œโ”€โ”€ NewSettingsView.swift
โ”‚   โ”œโ”€โ”€ ProfileView.swift
โ”‚   โ”œโ”€โ”€ HealthKitManager.swift
โ”‚   โ”œโ”€โ”€ PremiumSubscriptionView.swift
โ”‚   โ”œโ”€โ”€ StreakDetailView.swift
โ”‚   โ””โ”€โ”€ AISummary/              # AI features (5 files)
โ”œโ”€โ”€ CloudKit/                   # CloudKit sync (2 files)
โ”‚   โ”œโ”€โ”€ CloudKitManager.swift
โ”‚   โ””โ”€โ”€ CloudKitSyncStatus.swift
โ”œโ”€โ”€ Managers/                   # Manager classes (4 files)
โ”‚   โ”œโ”€โ”€ UserProfileManager.swift
โ”‚   โ”œโ”€โ”€ AppearanceManager.swift
โ”‚   โ”œโ”€โ”€ PhotoManager.swift
โ”‚   โ””โ”€โ”€ PRManager.swift
โ””โ”€โ”€ Cells/                      # Reusable UI components (11 files)

๐Ÿš€ Installation & Setup

Prerequisites

  • iOS 26.0+
  • Xcode 15.0+
  • Swift 5.9+

Setup Steps

git clone https://github.com/rektoooooo/shadowlift.git
cd shadowlift
open ShadowLift.xcodeproj

Required Permissions

The app requires these permissions in Info.plist:

<key>NSHealthShareUsageDescription</key>
<string>ShadowLift needs access to read your health data to sync workout and body metrics</string>
<key>NSHealthUpdateUsageDescription</key>
<string>ShadowLift needs access to write workout data to your health records</string>
<key>NSCameraUsageDescription</key>
<string>ShadowLift needs camera access to take progress photos</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>ShadowLift needs photo library access to save progress photos</string>

๐Ÿ”ง Configuration

Bundle Information

  • Bundle ID: com.icservis.GymlyFitness
  • App Name: ShadowLift
  • CloudKit Container: iCloud.com.gymly.app
  • File Type UTI: com.shadowlift.split
  • File Extension: .shadowliftsplit

Data Persistence

  • SwiftData: Exercise data, workout history, splits, photos
  • UserDefaults: User preferences via Config singleton
  • CloudKit: Cross-device sync (optional)
  • HealthKit: Health data integration (optional)

๐Ÿ“Š Key Technical Achievements

Performance Optimization

The app was battle-tested and optimized for real gym conditions:

  • โœ… "Gym Lag" Fix โ€“ Eliminated UI blocking during poor cellular connections
  • โœ… Network Quality Monitoring โ€“ Only syncs on good connections
  • โœ… 5-Second CloudKit Timeout โ€“ Prevents network from blocking UI
  • โœ… Workout Mode Detection โ€“ Disables auto-sync during active workouts
  • โœ… Cached Computed Properties โ€“ Prevents unnecessary recomputation
  • โœ… Memory Leak Fixes โ€“ Proper observer cleanup

Testing Philosophy

  • Real Gym Conditions โ€“ Tests simulate 60+ minute sessions with poor cellular
  • Performance Targets โ€“ <20ms per operation, no operation >100ms
  • Memory Stability โ€“ No leaks during extended use
  • Network Resilience โ€“ Tested with network throttling

Test Coverage

GymlyTests/
โ”œโ”€โ”€ WorkoutPerformanceTests.swift       # Unit performance tests
โ”œโ”€โ”€ WorkoutFlowPerformanceTests.swift   # Extended session simulation
โ””โ”€โ”€ NetworkPerformanceTests.swift       # CloudKit performance

GymlyUITests/
โ””โ”€โ”€ GymWorkflowTests.swift              # Full UI automation

๐Ÿ“– File Format

Split files use JSON-based .shadowliftsplit format:

{
  "id": "uuid-string",
  "name": "Push Pull Legs",
  "days": [
    {
      "id": "uuid-string",
      "name": "Push",
      "dayOfSplit": 1,
      "exercises": [
        {
          "id": "uuid-string",
          "name": "Bench Press",
          "sets": [...],
          "muscleGroup": "Chest",
          "repGoal": "8-12"
        }
      ]
    }
  ],
  "isActive": false,
  "startDate": "2024-01-01T00:00:00Z"
}

๐Ÿ“ˆ Analytics & Progress

Muscle Group Analytics Weight Tracking Graph
  • Muscle Group Radar Charts โ€“ Visualize training balance across 10 muscle groups
  • Weight Progression Graphs โ€“ Track body weight changes over time
  • BMI Monitoring โ€“ Visual gauge with health indicators
  • Workout Frequency โ€“ See training consistency patterns
  • Volume Tracking โ€“ Monitor total training volume

๐Ÿงช Testing & Beta Access

TestFlight Access

For TestFlight beta access, contact: support@shadowlift.app

Current Status

  • โœ… Active TestFlight beta
  • โœ… Real users in production
  • โœ… Performance optimized for gym conditions
  • โœ… iOS 26+ ready with AI features

๐Ÿ“ฌ Contact & Support

Get in Touch

Legal

๐ŸŽฏ Recent Major Updates

v1.0 (November 2025)

  • โœ… Complete Rebrand โ€“ Gymly โ†’ ShadowLift
  • โœ… Advanced Streak Analytics โ€“ Predictions, weekly patterns, detailed insights
  • โœ… PR Tracking System โ€“ Automatic personal record detection
  • โœ… Legal Documentation โ€“ Privacy Policy, Terms, FAQ, Support
  • โœ… Performance Fixes โ€“ Eliminated "gym lag" with CloudKit optimization
  • โœ… Premium UI โ€“ Modernized weight tracking and streak views
  • โœ… App Icon System โ€“ 5 themed icons matching accent colors

๐Ÿ”ฎ Future Roadmap

Planned Features

  • โฐ Rest Timer โ€“ Built-in rest timer between sets
  • โŒš Apple Watch App โ€“ Companion watch application
  • ๐Ÿ“š Exercise Database โ€“ Expanded library with video instructions
  • ๐ŸŒ Localization โ€“ Multi-language support
  • โ™ฟ Accessibility โ€“ Full VoiceOver and accessibility improvements
  • ๐Ÿ† Achievements โ€“ Gamification and milestone tracking

Technical Improvements

  • ๐Ÿš€ Widget Support โ€“ Home screen widgets for quick access
  • ๐Ÿ“Š Advanced Analytics โ€“ More detailed progress insights
  • ๐Ÿ”„ Enhanced Sync โ€“ Faster, more reliable CloudKit operations
  • ๐ŸŽจ More Themes โ€“ Additional color schemes and icons

๐Ÿ† What Makes ShadowLift Unique

Technical Excellence

  • Zero external dependencies โ€“ Pure native Apple stack
  • Performance-first โ€“ Tested and optimized for real gym conditions
  • Privacy-focused โ€“ On-device AI, optional cloud sync
  • Production-ready โ€“ ~20,748 lines of battle-tested code

Architectural Strengths

  • Clean MVVM separation with SwiftUI
  • Reactive data flow with Combine
  • Modern async/await concurrency
  • Intelligent CloudKit sync with network awareness
  • SwiftData for modern persistence

Unique Features

  • On-device AI workout summaries (iOS 26+)
  • Network-aware CloudKit sync (prevents gym lag!)
  • Progress photo tracking with pose guidance
  • Streak system with intelligent rest day logic
  • Pre-built premium split templates
  • Muscle group radar chart analytics
  • HealthKit bidirectional sync

๐Ÿ“„ License

ยฉ 2024 ShadowLift. All rights reserved.

This is proprietary software developed by Sebastiรกn Kuฤera.


Built with โค๏ธ by Sebastiรกn Kuฤera

Making fitness tracking simple, powerful, and beautiful.

About

ShadowLift is a comprehensive iOS fitness tracking app built with SwiftUI that provides a complete workout logging and planning experience with HealthKit integration and advanced workout analytics.

Resources

Stars

2 stars

Watchers

1 watching

Forks

Releases

Packages

Contributors

Languages