Changelog
Every version and feature since the first release — transparent and complete.
What's inside version 1.0.0
The first full version bundles what grew across several test builds. Those earlier builds ran under v0.0.x and are listed below — that's where you can see when each piece arrived.
- 🎨 Appearance is yours to pick — light, dark or system in the burger menu, independent of what your iPhone is set to
- 🌐 Language picker inside the app — German or English straight from the menu, without switching your system language
- 🔄 Backup 2.0 with a moving service — checksum protection, a choice between “merge” and “replace”, and backups that travel between iPhone and Android
- 🏎️ RaceBox (25 Hz) & Curve Tracker import — high-frequency GPS data and MotoLeaning databases read in directly, with nothing lost
- 🌡️ The day in color — the temperature of your travel days as a gradient along the route, broken down by the hour on the Story Card
- ⛰️ 4,468 mountain passes & 88 Gold Roads — automatic pass detection across Europe, Gold Road crowns and interactive pass maps
- 📐 Break & accuracy filters — no more phantom kilometers across recording breaks, GPS outlier filter tightened to 25 m
- 🗑️ Ride trash — deleted rides stay restorable for 30 days
Kurvenfokus for iPhone and iPad runs as a beta through Apple TestFlight: free, no subscription, no hidden costs. All you need is the TestFlight app and an invitation link. Found something that isn't right? Missing a feature? Write to me — I read every message myself, and good feedback often makes it into the next version.
- ● Appearance is yours to pick — light, dark or system, right in the burger menu and independent of what your iPhone is set to
- ● Language picker inside the app — German or English straight from the menu, without switching your iPhone's system language
- ⚙ The language switch was incomplete — menu entries, the feature overview, dashboard tips, the in-app changelog and the about screen stayed German while the app ran in English. Now fully translated
- ⚙ Recording breaks no longer count as distance traveled — time gaps longer than 60 seconds are skipped. On our reference ride the distance drops from 262.8 to 260.0 km: not a calculation error, but the end of phantom kilometers
- ⚙ GPS outliers are filtered more strictly — points with more than 25 m of horizontal error are dropped during import
- ● Temperature along your route on the Story Card — the track carries the measured temperature as its color, with time and degrees below it
- ● Passes in the trip overview — the count per travel day, gold dots on the map, and the total among the key figures
- ● Full-screen trip map — every ride of a trip in its own color, passes labeled by name, zoomable and pannable
- ● Trip Story Cards in the brand look — brand header, key-figure bar, footer; the map fills the entire image
- ● Backup 2.0 — backups carry a checksum per ride, and they move between iPhone and Android
- ● Import a Curve Tracker database directly — with a preview of how many rides it holds
- ● Import notices are surfaced — for instance when a GPX file has no timestamps and the speed had to be estimated
- ● Corner diagnostics — shows the detection profile, mode and data quality of a ride on request
- ⚙ Corner detection: a cleaned import lost the calibration of its data source, which cost around 10% of the corners. Affected rides show the right number again after a re-import
- ⚙ Story Cards: no more black block between map and text, and nothing is cut off at the edge of the daily cards
- ⚙ Key-figure bar: long values such as elevation gain no longer wrap onto a second line
- ⚙ GPS gaps no longer produce phantom speed second by second
- ⚙ Lean angle no longer drops out on short Curve Tracker rides
- ⚙ Files that live only in iCloud are downloaded in full before the import, instead of being read as empty placeholders
- ● My Passes rebuilt — 4,468 mountain passes across 27 countries, based on OpenStreetMap; about a third more than before
- ● Pass map — every pass you have collected as a gold pin, Gold Road passes marked with a crown
- ● Automatic pass scan — the app searches your rides after launch and reports back with your collection
- ● Pass markers in the ride list — four styles to choose from, gold badge by default
- ● Ride trash — deleted rides can be restored for 30 days
- ● Story Card with or without signature — you decide whether bike and name appear when sharing
- ● Import status banner — the import runs visibly in the background and the app stays usable
- ⚙ Exports now say clearly when a ride has no telemetry, instead of quietly doing nothing
- ⚙ Map: tapping a corner pans to it without changing your zoom level
- ⚙ Data safety: recalculating corners can no longer overwrite rides whose telemetry is not loaded
- ● Gold Roads — 88 of Europe's finest motorcycling roads, recognised automatically as soon as you ride one
- ● My Passes — over 3,200 mountain passes detected automatically, with elevation ranking and corner difficulty
- ● RaceBox VBO import — bring in data straight from the RaceBox Mini S: speed, g-force, gyro (iOS only)
- ● Curve Tracker import — GPX from the Curve Tracker app (MotoLeaning) including lean angle and speed
- ● Trip management and ride comparison — group rides into trips and compare two rides side by side
- ● Automatic backups — daily, weekly or monthly, stored locally on the iPhone only
- ● More honest statistics — the app asks about implausible lean angles above 50°, and planned routes no longer count towards your figures
- ● Planning precheck — planned Calimoto routes are checked in advance for whether corners can be determined reliably
- ⚙ Import safety — files brought in by drag and drop also run through the quality and duplicate checks
- ⚙ Smooth exports — JSON, GPX and CSV export without the app freezing
- ⚙ Backup precheck — see ride count, period and size before restoring
- ⚙ Much faster — new storage format stays smooth even with 300+ rides
- ⚙ Better elevation — more realistic figures thanks to a new smoothing pipeline
- ● Alpine pass detection — known passes on your ride are recognised automatically
- ● QuickSetup — fast configuration on first launch
- ● Story Cards — an automatically generated ride summary as a shareable card
- ● Onboarding flow — paginated TabView on first launch
- ● Light and dark theme — adaptive colour system, follows the system setting
- ● Ride highlights phase 2a — new TourHighlight data model
- ⚙ Memory crash with 300+ rides fixed — launch RAM down from 351 MB to 3 MB
- ⚙ Telemetry split — one JSON monolith became an index plus separate files (100× faster)
- ⚙ Lean limits ±60° — GeoMath.maxLeanAngle as a single constant
- ⚙ Scrollable burger menu — scrolls on small displays (iPhone 12 fix)
- ● MotionRecord ZIP import — bring in recordings directly as a ZIP
- ● Smart ZIP filter — skips large files (around 200 MB less)
- ● Import progress overlay — four phases: read, unpack, parse, analyse
- ● Streaming ZIP reader — peak RAM around 5 MB instead of 550 MB for 4 GB packages
- ● GPS and IMU fusion — chunk index plus LRU cache for sensor fusion within a ±0.6 s window
- ● iPad full-screen fix — proper full-screen display on iPad
- ● MotionRecord sensor report — preparatory view for IMU data
- ● Motobit GDPR JSON import — direct import with automatic format detection
- ● Data type filter — full telemetry versus GPS only, combined with AND logic
- ● Format badge — JSON (cyan) or GPX (grey) on every ride row
- ● Semantic source icons — SF Symbols for every import source
- ● Gap segmentation — telemetry split at breaks longer than 30 s
- ● Speed filter — corners below 2 km/h are filtered out
- ⚙ Rescan crash with 272+ rides fixed
- ⚙ Top speed cap raised from 200 to 280 km/h
- ⚙ Text wrapping on ride cards fixed
- ● GPX import for Calimoto, Komoot and Motobit
- ● GPS lean angle calculation (tan θ = v·ω/g)
- ● Corner filter and left/right corner distribution
- ● Speed and lean heat map on the map
- ● Score heat map (green = clean, red = untidy)
- ● Detection profiles (Standard, Calimoto, Motobit)
- ● Break detection and markers
- ● Ride comparison (A versus B, overlay)
- ● Batch import and duplicate detection
- ● Export: JSON, GPX, screenshot, Story Card (1080×1920)
- ● Ride grouping by date, region and route cluster
- ● iPad layouts (three modes)
The Android version is in open testing on Google Play: anyone can download it, free, with no subscription and no hidden costs. Found something that isn't right? Missing a feature? Write to me — I read every message myself, and good feedback often makes it into the next version.
- ● Backups stay put — a backup can now be saved permanently: to Downloads, an SD card or the cloud. Until now you could only share it, and cancelling the share dialog left you empty-handed.
- ● Backup and import report in — both show what they are working on right away: "Ride 42 of 284" with its name when backing up, the current step and the number of points read when importing.
- ● The app is now available in English — fully translated and reviewed by a second model.
- ⚙ Recording breaks no longer count as distance ridden. If you stop on the road — photo, fuel, coffee — the straight line to where you set off again used to be added to your total.
- ⚙ Corners passing through north get the right lean angle. When smoothing the heading, 359° and 1° were treated as opposites and averaged into the wrong direction.
- ⚙ GPX files from other sources are evaluated with the same thresholds as on iOS.
- ● Ready for Android 16 — the app moved to the latest Android target (targetSdk 36) and the whole build stack was modernised. No new buttons in this release; instead the app stays fast and secure on current devices and up to date on Google Play.
- ● Planned routes treated honestly — no more invented figures ("—" instead), and they stay out of statistics, heat map and comparison
- ● Curve Tracker import — GPX from the Curve Tracker app (MotoLeaning) including lean angle and speed
- ● Better source filter — Curve Tracker included, real app colours (Calimoto, Motobit, Komoot), Calimoto and Calimoto+ merged
- ● Stats bar in a 4×2 grid below the map — layout taken from iOS
- ● G-force and lean angle charts reworked — taller diagrams, tidier axes
- ⚙ Missing elevation data shows "—" instead of "0 m"
- ⚙ Lean limits ±60° unified across all five importers
- ⚙ In-app changelog updated
- ● Onboarding flow — HorizontalPager with three welcome pages
- ● Region grouping — sort rides by geographic region
- ● Route grouping — identical routes grouped automatically
- ● Overall ride score — a single rating from the individual corner scores
- ● Dynamic Type support — text sizes follow the system setting
- ⚙ Map performance 10× — Douglas-Peucker: 20,000 map points down to 2,000
- ⚙ Background rendering — map calculation moved off the main thread
- ⚙ Streaming import for files of 4 GB and more without running out of memory
- ● G-force analysis — longitudinal g, lateral g and the g-g diagram (friction circle)
- ● Multi-ride heat map — every ride overlaid on one map
- ● Route trends — progress sparklines for repeated routes
- ● Motorrad Wrapped — season review with all your statistics
- ● GPX and CSV export, stats stickers, Story Cards
- ● MotionRecord import — ZIP import with automatic detection
- ● Motobit GDPR JSON import — direct import with automatic format detection
- ● Detection profiles — Standard, Calimoto and Motobit, with a profile badge
- ● Monthly grouping — rides by month with distance, corners and riding time
- ⚙ Streaming backup and restore — peak memory around 5 MB instead of 1.3 GB
- ⚙ Gap segmentation — telemetry split at breaks longer than 30 s
- ⚙ Top speed cap raised from 200 to 280 km/h
- ⚙ 17 ASCII umlaut errors corrected to proper UTF-8
- ● Calimoto Plus GDPR import — RideLink-compatible JSON
- ● Burger menu — ModalBottomSheet, matching iOS
- ● Overlay screen — ride comparison across several rides
- ● Region detection — automatic geocoding for start and finish
- ● LTTB downsampling — performance for the charts
- ● Score colour mode — corner performance as a heat map
- ● CurveScorer — physics-based corner rating from 0 to 100
- ● QA screenshot automation and a TestTag system
- ● Jetpack Compose, Material 3 and a dark theme
- ● GPX import (Calimoto, Komoot, Motobit) plus RideLink JSON
- ● Interactive map (OpenStreetMap via osmdroid)
- ● Speed, lean angle and elevation charts
- ● Corner detection and a timeline scrubber
- ● AES-256-GCM encryption (GDPR compliant)
- ● GPS validator — plausibility check on import
- ● GPS-based lean angle calculation
- ● Batch import and error export