Add CoreData-based workout tracking app with iOS and watchOS targets

- Migrate from SwiftData to CoreData with CloudKit sync
- Add core models: Split, Exercise, Workout, WorkoutLog
- Implement tab-based UI: Workout Logs, Splits, Settings
- Add SF Symbols picker for split icons
- Add exercise picker filtered by split with exclusion of added exercises
- Integrate IndieAbout for settings/about section
- Add Yams for YAML exercise definition parsing
- Include starter exercise libraries (bodyweight, Planet Fitness)
- Add Date extensions for formatting (formattedTime, isSameDay)
- Format workout date ranges to show time-only for same-day end dates
- Add build number update script
- Add app icons
This commit is contained in:
2026-01-19 06:42:15 -05:00
parent 2bfeb6a165
commit 13313a32d3
77 changed files with 3876 additions and 48 deletions

View File

@@ -2,26 +2,39 @@
// ContentView.swift
// Workouts
//
// Created by rzen on 8/13/25 at 11:10AM.
// Created by rzen on 8/13/25 at 11:10 AM.
//
// Copyright 2025 Rouslan Zenetl. All Rights Reserved.
//
import SwiftUI
import CoreData
struct ContentView: View {
@Environment(\.managedObjectContext) private var viewContext
var body: some View {
VStack {
Image(systemName: "globe")
.imageScale(.large)
.foregroundStyle(.tint)
Text("Hello, world!")
TabView {
WorkoutLogsView()
.tabItem {
Label("Workout Logs", systemImage: "list.bullet.clipboard")
}
SplitsView()
.tabItem {
Label("Splits", systemImage: "dumbbell.fill")
}
SettingsView()
.tabItem {
Label("Settings", systemImage: "gear")
}
}
.padding()
}
}
#Preview {
ContentView()
.environment(\.managedObjectContext, PersistenceController.preview.viewContext)
}