Virtual Cycling Trainer
Version History
- 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