
Documentation
← 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)
MonthGrouperno longer allocates a freshDateFormatterper 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.