Changelog (iOS) — 0.8.4

0.8.4

New user onboarding

  • Completely redesigned onboarding flow with new visuals and animations:

    • Refactored for smoother transitions.

    • Updated welcome pages with larger fonts, bigger buttons, iOS 26 glass-style main buttons, and native toolbar for skipping.

    • Added images and a fourth welcome page.

    • Adjusted gradients for dark/green/blue variations and ensured proper dark mode handling (titles, backgrounds, contrast).

    • Added haptic feedback to onboarding toggles and buttons

    • Reworked units setup for phone setup with native toggle components.

    • Reordered onboarding: units setup now comes before HealthKit setup.

  • Added full HealthKit onboarding flow:

    • Fetches biometrics, best runs, and average run data for running style.

    • Added Milo Run Score determination step:

      • Automatically selects best matched runs and validates them.

      • Allows manual updates and editing even without matched runs.

      • Showing custom training paces based on Milo Run Score.

      • Pre-selects the best of four runs.

New training data tab

  • Introduced a new training data tab combining performance data:

    • Best Runs, Running Style, Milo Run Score, and Milo Training Paces views.

    • Allows editing biometrics, Milo Run Score race, and refreshing data from HealthKit.

    • Added card descriptions, improved dark mode support, and matched main tab UI.

Biometrics improvements

  • Updated BiometricsSettingsView:

    • Fetches biometrics during onboarding and allows manual editing.

    • Detects max heart rate from the last 24 months of workouts.

    • Added “Refresh biometrics from HealthKit” button.

    • Updated editing UI to match iOS input forms.

    • Added ability to add manual heart rate zones.

Bug fixes & general improvements

  • Fixed an important bug where average pace during runs could differ from the post-run summary due to fused distance calculations.

  • Fixed our custom progress alert truncating messages and added cancel handling for stuck uploads (e.g., Strava).

  • Fixed Strava connection card UI and added connect button to Route Import.

  • Fixed empty state for workouts tab.

  • Fixed laps for indoor cycling, now calculated from time and BPM.

  • Cycling speed now responds faster to real-world changes and full stops (traffic lights, etc.).

  • Added disk cache for route snapshots (faster loading of activity and route items).

  • Added reset user settings button (Debug → App Infos → Reset Settings).

  • Cleaned up settings and minor UI inconsistencies.

  • Fixed issue where the app didn’t correctly launch into dark mode.

  • Fixed HealthKit data mismatches and missing running style components on some devices.

  • Improved data refresh reliability when syncing from HealthKit.

  • Added empty state to Milo Run Score view with manual entry option.

  • Added comparison view in running style tab to contrast daily vs race-day stats (based on best Milo Run Score run).

  • Prevented overwriting existing user settings if onboarding is repeated.