Sending location to the server is the easy path. Not sending it is an architectural decision rather than a line of code — and the bill is downloading the entire province list.
The standard shape of a “nearest pharmacy” feature is this: the device sends its coordinates to the server, and the server returns the list sorted by distance. Simple, fast, what everybody does.
Eczanow does not do that. When location permission is granted, the coordinates are sent nowhere: the pharmacy list for the selected province is downloaded to the device and the sorting happens inside the phone. The server never learns where anyone is.
A pharmacy finder has no need to know where anyone is. Sending location to the server creates data that then has to be stored, disclosed and defended — for no benefit at all.
The “no benefit” part matters. The only thing collecting and keeping location adds to the product is the server’s ability to do the sorting. But the phone can do that sorting too; it is a few hundred distance calculations, not a measurable load on a modern device.
All that is left is a difference in where the data sits.
The cost: computing distance on the device means downloading the entire province list. You cannot ask the server for “I am here, give me the nearest five”.
Why it is affordable: a single province’s list is small enough, and it is cached anyway. The user picks a province once and the list refreshes daily.
⚠️ This trade does not hold for every product. With hundreds of thousands of records, or data that changes by the minute, the arithmetic reverses.
The most concrete return on this decision shows up in the store forms. Play’s Data safety section asks whether you collect location, and your answer has to match your published privacy policy exactly; a contradiction is treated as a violation.
When location is never collected:
That third point looks small and is in practice the most valuable one. Data you do collect can quietly end up somewhere else through a log line somebody adds while debugging. Data you never collect does not carry that risk.
The app also runs in Germany, where the logic differs: instead of a duty roster, pharmacy opening hours are interpreted and each card gets an open / closed / unknown badge. But the location side does not change — distance is still computed on the device.
That is exactly where the worth of a privacy decision gets measured: if it stops being negotiable as the product grows, it was a decision; otherwise it was a preference.