The Hybrid Trainer application is an advanced tool designed to empower athletes in tracking and optimizing their performance across swimming, cycling, running, and strength training disciplines. By seamlessly integrating data from FORM Swim Goggles, Apple Watch, and Wahoo bike computers, it offers sophisticated analytics to support endurance training objectives, such as achieving success in Ironman 70.3 events.
This repository encapsulates the entire codebase, including core models, backend services, and user interface components, necessary for building and deploying the Hybrid Trainer application.
- Description: Contains the Xcode project files required to configure, build, and debug the application within the Xcode development environment.
- Usage: Essential for compiling the project and conducting device-specific testing.
- Description: Core application source code.
- Contents:
- AppDelegate.swift: Manages lifecycle events for the application.
- SceneDelegate.swift: Handles window scene configurations, tailored for iOS 13 and newer versions.
- ViewController.swift: Acts as the primary entry point for UI logic and control.
- Description: Unit tests designed to verify the integrity and functionality of backend services, core models, and general application logic.
- Usage: Execute these tests within Xcode to ensure correctness and robustness.
- Description: UI-specific tests aimed at validating user interactions, navigation paths, and interface consistency.
- Usage: Run these tests to ascertain a seamless user experience across app features.
- Description: Houses the foundational data structures utilized throughout the app.
- Contents:
- WorkoutModel.swift: Encapsulates the structure and logic for tracking workout sessions.
- UserProfile.swift: Stores user-specific data and customizable preferences.
- Description: Contains backend logic and integration modules for external APIs.
- Contents:
- AppleHealthService.swift: Facilitates integration with Apple Health data streams.
- FormSwimService.swift: Processes and structures swim data from FORM Swim Goggles.
- WahooBikeService.swift: Handles the retrieval and analysis of data from Wahoo bike computers.
- Description: Encompasses all components related to the user interface.
- Contents:
- DashboardView.swift: Presents aggregated training data in a visually intuitive format.
- GoalProgressView.swift: Provides dynamic visualizations of goal achievement metrics.
- SettingsView.swift: Offers users control over application preferences and configurations.
- Description: Specifies the licensing terms governing the use and distribution of this repository.
- Description: This document provides a detailed overview of the project, alongside setup instructions and development guidelines.
- A macOS system with Xcode installed.
- An active Apple Developer account for signing and deploying the application.
-
Clone the repository:
git clone https://github.com/ngirmay/HybridTrainer.git cd HybridTrainer
-
Open the project in Xcode:
open HybridTrainer.xcodeproj
-
Configure Apple Developer credentials for code signing:
- Navigate to Signing & Capabilities within Xcode.
- Add your Apple Developer account.
-
Run the application:
- Select a target device or simulator in Xcode.
- Click the Run button to build and execute the app.
-
Setup Cursor AI Integration:
- Open the repository in Cursor AI.
- Ensure the IDE is correctly mapped to the project directory.
-
Code Analysis:
- Allow Cursor AI to scan and analyze the codebase for optimization suggestions.
- Leverage Cursor's tools for refactoring and debugging complex logic.
-
Feature Development:
- Goal Progression Tracking:
- Extend
GoalProgressView.swift
to incorporate advanced achievement tracking logic. - Refactor
WorkoutModel.swift
to handle additional performance metrics.
- Extend
- Data Synchronization:
- Enhance
AppleHealthService.swift
to accommodate expanded metrics from Apple Watch. - Validate synchronization pipelines using Cursor's debugging features.
- Enhance
- Interactive Visualization Enhancements:
- Introduce dynamic graphing components in
DashboardView.swift
leveraging SwiftUI. - Utilize Cursor AI for iterative design and improvement.
- Introduce dynamic graphing components in
- Goal Progression Tracking:
-
Testing and Validation:
- Develop corresponding unit tests in
HybridTrainerTests/
for each new feature. - Conduct thorough UI validation tests via
HybridTrainerUITests/
.
- Develop corresponding unit tests in
-
Version Control:
- Use Git for managing changes and collaborative development:
git add . git commit -m "Implemented advanced feature XYZ" git push origin main
- Use Git for managing changes and collaborative development:
-
Comprehensive Goal Progression
- Augment tracking mechanisms for key activities: swimming, cycling, running, and strength training.
-
Advanced Visual Analytics
- Embed interactive, user-friendly graphs to enhance data interpretation.
-
Cloud Data Synchronization
- Enable seamless multi-device data access through cloud storage solutions.
-
Personalized Training Recommendations
- Integrate machine learning models to deliver tailored performance insights and training regimens.
- Nobel Girmay: Principal developer and architect of the Hybrid Trainer application.
For contributions, please submit a pull request or open an issue to discuss your proposed changes.
This project is distributed under the MIT License. Refer to the LICENSE file for comprehensive details.