Virtual Cycling Trainer
Version History
- Customizable workout layouts on iPhone and iPad: build your own ride screen — choose the stats you care about and arrange them just the way you like.
- Many more stats are now available to place in your layout, including current, average, and peak power, cadence, heart-rate metrics, active and total energy, and time in power zones.
- Added support for body temperature sensors: connect a compatible Bluetooth sensor to track core and skin temperature plus heat strain during workouts — great for heat training.
- Trainer controls (ERG, Resistance, and Slope) are now more responsive and accurate — your adjustments show instantly and no longer snap back to the trainer’s reported value while you’re changing them.
- Resistance mode now uses a clear 0–100% scale mapped to your trainer’s supported range.
- Improved trainer control from Apple Watch, including full Shortcuts support and syncing your control mode and targets to the Watch when a workout starts.
- The workout summary now shows your Activity rings.
- Added average reference lines to the metric charts in workout details.
- Workout preferences now sync between iPhone and Apple Watch, so settings you change on one device carry over to the other.
- Added an option to skip the start countdown when beginning a workout, synced across your devices.
- Workouts now save average and maximum speed to Apple Health.
- Improved the workout view layout, with adaptive sizing that makes better use of space on smaller iPhones and in landscape, and stats that scroll when you add a lot of them.
- Added Bluetooth sensor battery levels to the devices list and the home screen device status.
- Added an optional iPhone battery readout to the landscape workout header.
- Added a Redeem Code option to the paywall for App Store offer codes.
- Added a Show Demo Trainer toggle to hide the demo bike when no trainer is connected, synced to Apple Watch.
- Improved workout start reliability on iPhone and Apple Watch — fixed several ways a start could hang, get stuck, or leave a phantom workout behind.
- Cancelling a workout start on iPhone no longer starts the workout on Apple Watch anyway.
- Improved automatic reconnection when your trainer drops the connection, turns off and on again, or changes its Bluetooth identity.
- More reliable iPhone and Apple Watch mirroring: live metrics recover automatically if mirroring stalls mid-workout, with fewer false connection-stalled moments and a cleaner recovery after a genuine disconnect.
- Fixed live average speed collapsing to the current value instead of showing the true average.
- Fixed heart-rate readings sent by the trainer itself still being used after turning off Allow Trainer Heart Rate.
- Fixed the workout timer staying at zero when starting a new workout on iPhone after using Apple Watch.
- Refined labels and translations.
- Workout view now defaults to dark mode. You can change this in Preferences.
- Added No Control mode for older trainers that use proprietary control systems but still provide standard power and cadence sensors, so workouts can be recorded without controlling the trainer.
- Live Activity timer fixes and reliability improvements.
- FTP (Functional Threshold Power) now also loads from Apple Health.
- Added simple watchOS complications so you can quickly open a workout.
- Device name overrides now appear consistently across the app.
- In light mode workout view, timer and pause button colors are now easier to read.
- Zero distance no longer displays as cm or inches.
- Improved controls sync between Apple Watch and iPhone.
- Made workout controls more responsive and more accurate.
- Improved workout start error handling on Apple Watch.
- Added a proper Devices screen button in workouts on both Apple Watch and iPhone.
- Control your trainer right from your watch with new trainer controls.
- Connect your trainer directly to your watch, with no iPhone required.
- iPad support is here: connect your trainer and train on the big screen.
- Workout now shows the connected trainer during the session.
- On iPhone, landscape workout view now shows the system clock.
- Improved visibility of key workout text in light mode, including the timer and pause button.
- Added a loading indicator when opening workout details.
- Fixed live sensor data in the Devices screen to show values only from the current sensor.
- The app now occasionally asks for a review after you finish a workout.
- Fixed an issue where some Bluetooth devices could remain stuck in the Connecting state.
- Apple Watch now shows an overlay when starting a workout and syncs the start timer with the iPhone.
- Session list now updates correctly after completing a workout.
- Devices list improvements: correct device names are shown instead of “unknown device”, and you can swipe right to open device configuration.
- Various smaller fixes and FTMS reliability improvements.
- Device configuration screen now shows trainer data that was previously filtered out.
- Workout summary once again includes State of Mind.
- Trainer-reported calories now update correctly after pausing and resuming a workout.
- Various smaller fixes and stability improvements.
- New Sessions view to browse past workouts and their metrics.
- Redesigned iOS summary view to match past workout details, with support for sharing as an image.
- Clearer error message when starting a workout while the Watch is locked.
- The "Prepare Watch" step can now be skipped when starting a workout.
- Fixed trainer heart rate sensor still being assigned when disabled in device configuration.
- FTMS reliability improvements; reduced background activity when no workout is active and trainer is connected.
- Trainer now has per-device configuration, shown when you first connect a device. You can test the device and preview live data from this screen.
- Main view now shows all connected devices (e.g. heart rate sensor) when a trainer is connected.
- Workouts on iPhone now display activity rings during the workout.
- watchOS app now has Preferences to override some settings locally on the watch.
- Unassigning the trainer’s heart rate source is now correctly saved across app launches.
- Improved device connection status: a yellow indicator appears when the app couldn’t request device control (you may need to restart the device).
- When connection to the trainer fails, an error is shown instead of repeated reconnect attempts.
- Trainer-reported calories can now be used instead of Apple Health’s built-in calorie calculation.
- Reworked workout starting flow with a fullscreen status overlay.
- Short workouts under 3 minutes are now discarded by default; this can be overridden in Preferences.
- Free workout limit now counts only workouts of 5 minutes or longer.
- Fixed tap area in Bluetooth devices list.
- Bluetooth devices list now shows connection progress.
- Bluetooth devices list now displays proper error messages when a device needs to be re-paired in system settings.
- Fixed crash caused by FTMS data race condition.
- Workout now automatically hides and resumes when trainer disconnects and reconnects.
- Simplified Bluetooth devices list by removing technical details.
- Various smaller Bluetooth and FTMS reliability improvements.
- Fixed crash when editing heart rate zones.
- Fixed crash when editing power zones.
- Fixed decimal formatting throughout the app.
- Improved FTMS stack error handling.
- Happy New Year! Keep cycling and stay active in 2026.
- Improved workout mirroring reliability by following Apple's recommended practices; mirroring failures should no longer occur.
- Added failsafes for mirroring errors; if mirroring fails, the app displays an error message while keeping the workout screen visible.
- Prevent iPhone screen from auto-locking during active workouts. This can be disabled in Preferences.
- Added More Apps section to Preferences.
- Email contact button added to Preferences.
- Added Advanced preferences: pause workout on trainer disconnect, attaching logs to email, and exporting raw logs.
- Improved Bluetooth and FTMS stack stability with various bug fixes and optimizations.
- Added support for total distance received from the trainer, instead of calculating from speed.
- Added a toggle to prefer Bluetooth heart rate sensors; turn it off to keep using Apple Watch/iPhone heart rate.
- Ignore zero-value readings from external heart rate sensors and fall back to HealthKit more reliably when Bluetooth data drops out.
- Auto-reconnect assigned Bluetooth devices as soon as they come online, without duplicate connection attempts across categories.
- Live sensor readings (power, cadence, heart rate) now surface inline in the Devices list when connected.
- Heart rate samples from Bluetooth devices now carry device info into HealthKit for better provenance.
← Back to Virtual Cycling Trainer