When a gallery screen starts feeling slow, I try not to optimize blindly. The first step is to decide whether the delay comes from data retrieval, formula recalculation, or control rendering.
What I Check First
- Whether
OnVisibleis doing too much work at once. - Whether repeated
LookUp,Filter, orAddColumnscalls are being recalculated inside item templates. - Whether a connector or data source is returning more columns or rows than the screen needs.
A Useful Pattern
Instead of letting the gallery build everything dynamically, I prefer to shape data earlier and bind the gallery to something simpler.
ClearCollect(
colOpenRequests,
ShowColumns(
Filter(
ServiceRequests,
Status = "Open" && AssignedTo.Email = User().Email
),
ID,
Title,
Priority,
Modified
)
);
This helps in three ways:
- the gallery receives a narrower dataset
- repeated formulas inside the template become simpler
- debugging becomes easier because the data shape is explicit
Questions I Leave for My Future Self
- Can this filter be delegated fully?
- Does the user need fresh data every visit, or can I cache temporarily?
- Can I move expensive formulas out of labels and into a prepared collection?
Outcome
This kind of cleanup usually does not require a major redesign. In many cases, the improvement comes from removing repeated work and making the screen state more predictable.
That makes the app faster and the next debugging session easier.