← All studio notes

Mobile app development / DIJION

Mobile search: keeping old results separate from a new query

A search guide separating typed text, submitted queries and visible results across slow networks, filters and zero matches.

Old results may remain visible while someone enters a new search. Without a clear distinction, the list can appear to answer the new query. In an illustrative reading app, changing design to games should not cause someone to select an old article under a false impression. Search is a sequence of states, not just a text field.

Identify the query behind the results

Keep typed text, the submitted query and the query associated with displayed results distinct. Searching on input or through an explicit action depends on the product. Either way, a late response to an older query must not overwrite newer results. Clearing the query should also prevent a pending response from unexpectedly repopulating the screen.

Distinguish no matches from no search yet

Scroll the table horizontally to see all columns.

Example search states
StateExplanationUseful action
Empty queryNo search submittedOffer relevant starting topics
WaitingSearching for this queryKeep input editable
Zero matchesNo matches for this query and filtersReview the filters

Make active filters visible

A forgotten restrictive filter can make search seem broken. Show active filters near the results. Clear filters and Clear search are different actions; one should not silently erase the other. Specify what happens to a selected item, list position and result count when filters change, rather than leaving these details to separate screens.

Preserve context when returning from a result

Preserving the query and filters on return lets people continue comparing results. If data changed, avoid presenting an old ordering as current. Consider search-history storage separately: exposing personal searches on a shared device may be inappropriate. Retaining history is a deliberate product choice, not an automatic requirement for making search work.

Test search under delayed responses

  1. Submit two queries quickly and return their responses in reverse order.
  2. Clear text and change a filter before the response arrives.
  3. Recover from zero matches by removing filters.
  4. Open a result and return; inspect query and scroll context.

The handoff is a state table identifying which query owns each result set. That distinction helps prevent misleading screens and unnecessary repeated searches.