❯ A native iOS + watchOS outdoor trail tracking and activity companion
- Overview
- Features
- Project Structure
- Getting Started
- Project Roadmap
- Contributing
- License
- Acknowledgments
TrailBuddy is a smart, beautiful native iOS and watchOS application developed as part of the VI2 – Advanced iOS Application Development course at MENDELU (Winter 2025/2026). Partly inspired by Strava, it is designed for outdoor enthusiasts — enabling them to track hikes and trails, monitor activity metrics in real time, and synchronize data seamlessly between iPhone and Apple Watch. The project includes a dedicated watchOS companion app for on-wrist access to key stats during activity, wrapped in a polished, carefully crafted UI.
- Real-time trail and activity tracking using GPS
- Live metrics: distance, pace, elevation, and duration
- Apple Watch companion app with iOS–watchOS data sync
- Interactive map view for route visualization
- Activity history with detailed statistics
- Multi-language support (translations branch)
- HealthKit integration for activity data
└── TrailBuddy/
├── TrailBuddy/
│ ├── AppDelegate.swift
│ ├── Models/
│ ├── Views/
│ ├── ViewModels/
│ ├── Services/
│ └── Resources/
├── TrailBuddy WatchKit App/
│ └── Interface.storyboard
├── TrailBuddy WatchKit Extension/
│ ├── InterfaceController.swift
│ └── ExtensionDelegate.swift
├── TrailBuddyTests/
└── TrailBuddy.xcodeprojTRAILBUDDY/
TrailBuddy (iOS)
AppDelegate.swift ❯ App lifecycle and WCSession setup for Watch connectivityServices/ ❯ Location, HealthKit, and Watch connectivity services
TrailBuddy WatchKit Extension
InterfaceController.swift ❯ Main watchOS UI controller displaying live activity dataExtensionDelegate.swift ❯ watchOS extension lifecycle and background task management
branches
main ❯ Stable production branchios-watchos-sync ❯ Feature branch for iPhone–Apple Watch data synchronizationtranslations ❯ Multi-language localization supporttesting ❯ QA and integration testing branch
- macOS (latest stable version recommended)
- Xcode 15 or higher
- iOS SDK 16+ and watchOS SDK 9+
- Swift 5.9+
- Apple Watch (physical or simulator) for watchOS features
- An Apple Developer account (for running on physical devices)
Build from source:
- Clone the repository:
❯ git clone https://github.com/svareX/TrailBuddy.git- Navigate to the project directory:
❯ cd TrailBuddy- Open the Xcode project:
❯ open TrailBuddy.xcodeproj- Select the iOS target and a paired Apple Watch simulator, then build (
⌘B).
Run the app using Xcode:
❯ Select the TrailBuddy scheme and press ▶ Run (⌘R)For the watchOS app, select the WatchKit App scheme and run on a paired simulator.
Run the test suite:
❯ ⌘U in XcodeOr from the command line:
❯ xcodebuild test -scheme TrailBuddy -destination 'platform=iOS Simulator,name=iPhone 15'-
Task 1:GPS trail tracking with map visualization. -
Task 2:Apple Watch companion app with iOS–watchOS sync. -
Task 3: Social sharing of completed trails and leaderboards.
- 💬 Join the Discussions: Share your insights, provide feedback, or ask questions.
- 🐛 Report Issues: Submit bugs found or log feature requests for the
TrailBuddyproject. - 💡 Submit Pull Requests: Review open PRs, and submit your own PRs.
Contributing Guidelines
- Fork the Repository: Start by forking the project repository to your GitHub account.
- Clone Locally: Clone the forked repository to your local machine.
git clone https://github.com/svareX/TrailBuddy
- Create a New Branch: Always work on a new branch.
git checkout -b new-feature-x
- Make Your Changes: Develop and test your changes locally.
- Commit Your Changes: Commit with a clear message.
git commit -m 'Implemented new feature x.' - Push to GitHub: Push the changes to your forked repository.
git push origin new-feature-x
- Submit a Pull Request: Create a PR against the original project repository.
This project is protected under the MIT License. For more details, refer to the LICENSE file.
- Developed as part of the VI2 – Advanced iOS Application Development course at MENDELU (Winter 2025/2026)
- Course instructor and teaching staff at MENDELU FBE
- Apple Developer Documentation — WatchConnectivity and Core Location frameworks