A native Android ski companion app built with Kotlin and Jetpack Compose. Record ski runs with automatic lift detection, explore 5 map styles, track statistics with activity rings, and manage waypoints — all with privacy-first local storage.
View on GitHubMapping
Switch between OpenStreetMap, OpenTopo, satellite imagery, CyclOSM cycling maps, and a dedicated ski-piste overlay.
Automatic tile caching keeps maps available in areas with poor cellular coverage on the mountain.
Live compass overlay with heading indicator for orientation in whiteout conditions or unfamiliar terrain.
Intelligent clustering prevents map clutter when viewing dense waypoint areas at lower zoom levels.
Automatically identifies nearby ski resorts based on GPS location for quick map centering.
Full dark mode support including map tile rendering for comfortable use in low-light conditions.
Recording
Persistent foreground service continues recording when the screen is off or other apps are in use.
Automatically detects when you start a ski run versus riding a lift based on speed and elevation patterns.
Pauses run statistics while on chairlifts to keep your descent data clean and accurate.
Real-time elevation gain and loss tracking with altitude graph visualization for each run.
Color-coded track overlays showing speed variations across your recorded runs on the map.
Automatic session persistence recovers your active recording if the app is killed or the device restarts.
Statistics
Apple-inspired activity rings tracking daily vertical meters, distance, and run count against personal goals.
Year-at-a-glance contribution-style heatmap showing skiing frequency and intensity over time.
Automatic tracking of fastest speeds, longest runs, biggest vertical days, and consecutive skiing streaks.
Architecture
Explore
Piste is open-source and available on GitHub.