Documentation

Learn how to use Drivest to track your vehicle costs

← Back to Drivest

Drivest is a vehicle cost and fuel tracking app for iOS. All your data stays on your device — no accounts, no servers, no tracking.

Guides

  • Getting Started — First launch, adding your first vehicle, welcome hints
  • Fuel Tracking — Logging fill-ups, receipt scanning, fuel efficiency
  • Cost Tracking — Recording expenses by category, with odometer and location
  • Reminders — Date-based and distance-based reminders
  • EV Features — Charging sessions, electricity bills, EV tracking
  • Data — Latest Reading card, Latest Location card, Stats, Charts, Map, Readings
  • Currency — Default currency, additional currencies, exchange rates
  • Connected Services — Vehicle manufacturer integrations, Shortcuts
  • Backup & Restore — Export and import your data
  • Settings — Appearance, language, categories, vehicle order, welcome hints
  • FAQ — Frequently asked questions and troubleshooting

What’s New in 1.4

Responsiveness overhaul

The largest user-facing focus of 1.4. If forms felt sluggish, lists scrolled with hiccups, or the Data / Stats / Charts tabs hitched when you switched into them on a vehicle with a lot of history, that’s what’s been fixed.

  • Typing in forms with attached photos stays smooth — every keystroke used to re-decode every attached JPEG on the main thread. Photos are now decoded once into a cached thumbnail and reused for every subsequent render. Add Bill, Add Fill-Up, Add Cost forms all benefit; the difference is most visible on long forms with 3+ receipts attached.
  • Cost list scrolls smoothly with many reminders — each row used to scan all reminders linearly and walk five model relationships twice to compute the “in N days” / “N km overdue” hint. The list view now precomputes a reminder map once per fetch and caches the current odometer so rows do a single dictionary lookup instead.
  • Fill-Up list rendering is now linear, not quadratic — the previous “distance since last fill-up” calculation re-scanned the entire list per row. With several hundred fill-ups that turned scrolling into noticeable lag; it’s now a precomputed map.
  • Data, Stats, Charts, and Cost Breakdown tabs open without frame drops — every SwiftData fetch behind those views moved off the main thread to a background actor. On a vehicle with ~1 000 fill-ups + ~3 000 snapshots the tab-switch animation no longer hitches. Stale data stays visible during reloads so revisiting a tab feels instantaneous; a brief loading indicator appears only on a fresh vehicle change with no cached values.
  • EV tab history bucketing is cached — the month-grouped sort over bills + charging sessions used to re-run on every view re-evaluation. It now recomputes only when the underlying counts change.

Fixes

  • Back-dated fill-ups validate against the right neighbours — inserting a fill-up at a past date now checks the odometer against the surrounding entries (the entries immediately before and after the chosen date), not just the most recent fill-up. Prevents spurious “odometer is lower than the previous reading” warnings when the previous reading is chronologically after the one you’re entering.
  • Efficiency recalculates for the following full tank — when you insert a fill-up between two existing ones, the efficiency of the next full-tank entry is recalculated automatically so the L/100km value reflects the new mid-tank consumption rather than the old (incorrect) one. Previously you had to edit-and-save the later fill-up to trigger the refresh manually.

Toyota integration

  • Tank-capacity prompt on Snapshot History — Toyota snapshots report fuel level as a percentage. Without a tank capacity entered for the vehicle, Drivest can’t translate that into litres or L/100km. The Snapshot History view now surfaces the prompt directly so you can fill it in without diving into vehicle settings.

Onboarding polish

  • Existing users no longer get ambushed by welcome coachmarks on update — the 049 welcome hints (Latest Reading card, Settings gear, Location row, Currency selector, EV add-button) are now suppressed for installs that already have data, so updating from 1.3 doesn’t trigger a parade of tutorial popovers on screens you’ve been using for months. Fresh installs still see them. The Settings → “Show welcome hints again” path is unchanged and overrides the suppression.
  • Auto-Capture tip explains itself better — the prompt that introduces per-drive snapshot capture (067) now leans on Driving Focus rather than a time-of-day proxy. Clearer for users who don’t drive on a regular schedule.

Performance & reliability (continued from 1.3.x)

  • MonthGrouper no longer allocates a fresh DateFormatter per call — list refetches (fill-ups, costs, EV history) reuse a cached formatter. Small per-call save, adds up on rapid refreshes.

Looking for older documentation? See v1.3 docs, v1.2 docs, and v1.1 docs.

Requirements

  • iOS 17.0 or later
  • iPhone

Support

Drivest is free and open source. If you have questions or find a bug, visit the GitHub repository.