The workout tracker built with you in mind – stay consistent and see results.
LiftLog is designed for people who want a simple, no-nonsense way to log their workouts, monitor their gains, and stay motivated throughout their fitness journey.
LiftLog is a SwiftUI-based application designed to empower users to track their workout progress. Inspired by Paul Hudson's 100 Days of SwiftUI, this project aims to provide a user-friendly and customizable workout logging experience.
Current Features
- Activity Creation: Effortlessly add new workout activities, including their name, completion count, and personal notes.
- Progress Tracking: Track the number of times you've completed each workout and monitor your improvement.
- Notes for Reflection: Capture essential details, observations, or motivational thoughts about your workouts.
- Data Persistence: Your workout data is safely stored using UserDefaults, ensuring your progress is preserved across app sessions.
- SwiftUI: Built with the declarative power of SwiftUI, providing a modern and intuitive UI development experience.
- Navigation: Employs SwiftUI's
NavigationStack
and value-based navigation for seamless transitions between views. - Observation Framework: Leverages Apple's Observation protocol and the
@Observable
macro to efficiently react to data changes and update the UI accordingly.
- Clone the repository:
git clone https://github.com/kevveth/LiftLog
- Open in Xcode: Open the
LiftLog.xcodeproj
file. - Build and Run: Build and run the project on your iOS simulator or device.
- Workout Routines: Implement the ability to create and manage structured workout routines.
- Progress Visualization: Incorporate charts or graphs to visualize workout progress over time.
- Advanced Data Storage: Explore alternative data storage methods like Core Data for more complex data relationships.
- Set workout reminders or schedule workout sessions.
Feel free to open issues to report bugs or suggest new features. To contribute code, please follow these steps:
- Fork the repository.
- Create a new branch with a descriptive name (e.g.,
feature-workout-routines
). - Make your changes and submit a pull request with a detailed explanation of the modifications.
This project has been a fantastic opportunity to apply the concepts and techniques learned from Paul Hudson's 100 Days of SwiftUI challenge. It has solidified my understanding of SwiftUI's core principles, state management, navigation, and data persistence.
I'm excited to continue developing LiftLog and welcome the collaboration of like-minded developers passionate about fitness and SwiftUI.
LiftLog is distributed under the MIT License. See LICENSE for details.