Inspiration
What it does
How we built it
Challenges we ran into
Accomplishments that we're proud of
What we learned
What's next for SkiPal — GPS Ski Tracker & AI Coach
Inspiration
Skiing is a sport you can only judge by feel — until you record it. Most people come back from a ski trip with a pile of GoPro footage and no numbers: how fast was that run, how much vertical did I actually drop, was that line better than last week?
SkiPal turns a day on the mountain into data you can read.
What it does
SkiPal is a native iOS 17+ / watchOS 10+ app that records every run with GPS and turns it into a scorecard:
- Live run recording — background GPS tracking with pause/resume; live speed (km/h), altitude, distance and slope grade on a high-contrast screen that stays readable in snow glare.
- Resort auto-detection — a bundled database of 55+ resorts; SkiPal works out where you are without you tapping anything.
- Route map — MapKit rendering of the current and past tracks.
- Statistics & achievements — totals, personal bests (top speed, longest distance, longest run) and a 1–5 star achievement system.
- Share cards — one tap to render a shareable card with your speed, distance and resort.
- Live weather & snow quality — current conditions, 5-day forecast and a 0–100 snow quality index from the public Open-Meteo API (no API key, no account).
- AI coach — turns a finished run into a score plus three concrete suggestions (line, rhythm, endurance).
- Fall detection — the motion sensor detects a fall and offers to reach your emergency contact.
- Video capture — record the highlights of a run.
- Apple Watch — a watchOS app with two-way sync via WatchConnectivity.
- iCloud sync — sessions sync through the user's own private CloudKit database.
- Bilingual — English and Simplified Chinese.
Try it out
git clone https://github.com/Ricky-v2v/SkiPal.git
cd SkiPal/ios/SkiPal
xcodegen generate
open SkiPal.xcodeproj
Location tracking needs a real device (or a GPX route in the simulator). Build, CloudKit and permission setup are documented in the repo README and QUICKSTART.md.
Everything runs on-device: no account, no backend, and no data leaves the phone unless the user turns on their own iCloud sync.
Built With
- avfoundation
- cloudkit
- core-location
- core-motion
- ios
- kiro-cli
- kiro-ide
- mapkit
- swift
- swift-charts
- swiftui
- watchconnectivity
- watchos
- xcode
- xcodegen