Skip to content
ع
All projects

Khatwa

Walk a few steps, ride the rest.

Khatwa: Walk a few steps, ride the rest.
Role
Solo
Year
2026
Status
In progress
Category
Mobile

An Android app that checks the pickup and dropoff points within walking distance of a ride-hailing trip and tells you which pair saves time or distance compared with a door-to-door ride. In Arabic, and tuned for Amman.

Overview

The door-to-door ride is not always the fastest one. In Amman, walking two minutes to the other side of a divided road, or getting dropped one block early, can save the driver a U-turn, a one-way loop or a jam.

Khatwa samples the points around your start and destination, compares every pickup and dropoff pair against the direct trip, and shows only the ones that actually win. You set how far you will walk and what you care about: total time, drive time, or drive distance.

There is no backend and no account. Saved points, fare notes and the search quota live as JSON in the app's private storage, and coordinates go only to Google Maps Platform.

Built with

  • Kotlin
  • Jetpack Compose
  • Material 3
  • Google Maps SDK
  • Routes API
  • Roads API
  • Places API

Links

Challenges

Keeping the Maps bill predictable

Problem

Every pickup × dropoff pair is a paid drive-matrix element. Five candidates a side is 25 elements per search, and an unbounded search would turn a free side project into a monthly bill.

Solution

Walking times are fetched first, and any candidate over your walking limit is dropped before a single drive element is requested. Each search is capped at 25 elements and each month at 100 searches, so the worst case is known in advance.

An honest comparison, not a list of options

Problem

An alternative that saves three minutes of driving but adds eight minutes of walking is not a better trip. A plain sort by one number would keep recommending trades nobody wants.

Solution

The ranking engine keeps only Pareto-optimal pairs that beat the direct trip on your chosen goal, then returns the top three, each shown beside the direct ride with the difference in time, distance and walking. It is plain Kotlin with no Android dependencies, so it is covered by unit tests.

Points that are actually safe to stop at

Problem

A point snapped to the nearest road can sit on the wrong side of a divided highway or somewhere a driver cannot legally stop. Automatic suggestions alone would send people to bad corners.

Solution

Your own reviewed points, with road side and a nearby landmark, are tried before any automatic suggestion. Any point can be reported as wrong side or unsafe, and it is excluded from every future search.

Results

  • Traffic-aware comparison against the direct trip, departing when you would actually reach the pickup.
  • A fare log to check over time whether the alternative really costs less.
  • Hard caps on searches and matrix elements keep Google Maps costs predictable.