Skip to content
Ritesh FirodiyaGet in touch

Work / AskCal / Wiki / Surfaces

pick

Surfacecanonicalverified 2026-09-28

SURFACE.MOBILE.FOOD.PICK

Summary

Add a food to the plate you are already looking at, and come back.

Raw wireframe

  • .context/designs/mobile/food/pick.html

Why it is drawn this way

It is not search, and that is the whole reason it exists. "+ Add item" used to point at the search screen, and so did "Pick it from the food database instead" on the correction screen. In the app that meant the Add tab — a tab that no longer exists, its slot taken by Gallery; the logging screen it named is now food/search.tsx. Either way the shape of the bug is the same: a different tab, with its own stack, whose every result logs a meal of its own and returns to Today. Tapping it did not add an item to the plate, it abandoned the plate — the scan was gone, the rows the model had got right were gone, and the photo that paid for them was gone. There was no way back because there was nothing left to go back to.

Two screens that look almost identical and differ entirely in what they do, which is exactly what a wireframe has to make visible. The differences are all verbs: the header names the plate it is adding to; a result is "add", not "log"; the repeat lists and the whole-day copy are absent, because none of those are things you put on an existing plate; there is no tab bar; and the only exits are Back and choosing something. It cannot log.

It adds, and it does nothing else. It carried a second mode — replace, which swapped one row for a database match, with its own header, subtitle and placeholder. Its only entry point was inside "Where the numbers come from" on the portion editor, and that section was removed, so nothing had reached it since. The mode is gone; if the capability is wanted back it needs a home on a screen first. This file's own summary claimed "replaces nothing" the whole time the code replaced things.

One screen for both plates. An in-flight scan and a meal already in the log take the same search and the same mapping, and two copies would be two places for the confidence rule to drift: a database entry is Label, unless the source declared no serving size, in which case the 100 g quantity is ours and the row is Guessed. See confidence.

Related

Sources

  • .context/designs/mobile/food/pick.html

Every project of mine is written down like this.

Read the résumé