Case study · Project year 2026
Eco Route
An early-beta Android route planner that compares estimated fuel use and cost within a chosen extra-time budget, with calculations running on your phone.
My role: Independent product designer and Android engineer; route-model implementation
Outcome
Built a map-first planner with speed profiles, route alternatives, multiple stops, return trips, and saved cars. Fuel predictions remain uncalibrated estimates.
Latest signed phone release
Download Eco Route
Free and open source. Early beta for Android. No account, advertising, or in-app analytics. New address searches, roads, map tiles, and fuel prices require Internet; calculations and saved cars stay on your phone.
- Release
- v0.9.0 · code 12
- Compatibility
- Android 8.0+ · phone APK
- Package
- org.kalc.ecoroute
- File size
- 6.39 MB (6,387,689 bytes)
- SHA-256
- b5e9fb3a08d2502d7d2b62f0c13d37c6a4054e36f9432b56aae0007290a836f4
This APK installs outside Google Play. Android may ask you to allow installs from your browser. Verify the checksum above before installing, and only grant that permission for the installation.
Fuel and travel time as a visible trade-off
The fastest route is not necessarily the route with the lowest fuel use. Eco Route lets a driver compare estimated fuel, distance, time, and price while choosing how much additional travel time is acceptable: 0%, 5%, 10%, or 15%. The allowance scales with the journey instead of adding the same number of minutes to every trip.
The destination-first interface keeps the map central. Address suggestions, an optional current-location start, multiple stops, and a return journey feed the same planner. Route results expose alternatives and recommended speeds along the route. Posted signs and actual driving conditions always take priority over a modeled speed profile; this is a planning tool rather than live turn-by-turn navigation.
Public roads, private calculations
The native Kotlin and Jetpack Compose app requests addresses from Photon, road candidates and elevation from Valhalla, map tiles from OpenStreetMap, and a dated Slovenian reference fuel price from GOV.SI. The road-load model and speed optimization then run on the phone. No connection to my private server or Tailscale is required.
Saved cars and editable physical assumptions remain on the device. A bundled catalogue of 39,717 grouped petrol/diesel references from the EEA 2024 registration dataset supports offline car search. It is a reference catalogue, not a verified match for every trim: mass and laboratory consumption have provenance, while aerodynamic drag and other missing quantities use explicitly estimated, editable assumptions. Electric and plug-in vehicles are outside the current model.
There is no account, advertising, in-app analytics, or background location tracking. Public providers still receive address queries, route coordinates, or viewed map areas and ordinary connection metadata. Internet is needed for new online data. The privacy policy explains these requests, local caching, optional location access, exports, and deletion.
The model and its boundaries
The road-load-v2 calculation combines vehicle and trip mass, road grade, aerodynamic drag, rolling resistance, acceleration, drivetrain-efficiency assumptions, and auxiliary demand. A constrained search compares discrete speed profiles within the time budget on the supplied road candidates. It does not establish the globally optimal route across the entire road network.
Fuel values are uncalibrated estimates. The model does not simulate an engine map, hybrid battery state, or energy recovery. Live traffic, weather, stops, tolls, and parking charges are excluded. Cost uses a dated Slovenian outside-motorway reference fuel price even for a route abroad; it is not a quote from a station along the journey.
A shareable early beta
The download is the signed Android 0.9.0 phone APK (code 12), for Android 8.0 and later. Its permanent signing identity is retained so existing compatible installations can update. The release publishes the package identity, exact byte size, SHA-256, corresponding build source, and dependency notices.
Numerical parity checks compared the Android model with its Python reference. Automated and emulator checks exercised local car search, planning, return trips, map rendering, and the hybrid app without a private-server connection. These checks establish software consistency and exercised flows, not measured fuel accuracy, savings, or comprehensive physical-device reliability. The public download is intentionally labeled early beta.
From addresses to a fuel estimate
- 01
Choose your trip
Select addresses, stops, a saved car, and an extra-time allowance.
- 02
Fetch road candidates
Public providers supply roads, elevations, map tiles, and a reference price.
- 03
Calculate on your phone
Compare modeled speed profiles, fuel, duration, and cost locally.

Product screens
Screenshots of the signed Android beta: a calculated route, return-trip alternatives, and the offline car catalogue.
Technology focus
- Kotlin
- Jetpack Compose
- Route Optimization
- OpenStreetMap
Evidence and further reading
Evidence reviewed . Project year is separate from this review date.
- Inspect the v0.9.0 source (opens in new tab)
Corresponding Android build source, Python numerical reference, model documentation, and public dataset attribution.
- Open the signed early-beta release (opens in new tab)
Phone APK, checksums, source archive, and license notices for version 0.9.0 (code 12).
- Read the privacy policy (opens in new tab)
Local vehicle profiles, public online providers, foreground location, caching, and user-controlled exports.

