Recipe

Mirror the loyalty ladder in a mobile app

Show the loyalty ladder in a native or mobile app from one cached fetch. Pull the tiers on launch, cache them locally keyed on the generated timestamp, and render each tier’s percent-unit discount. Refresh in the background so the ladder is always ready and never a blocking call.

2 min read

launch fetchOnce, then cache
local cacheBy generated ts
backgroundRefresh out of band

Fetch on launch

Call GET /public/v1/loyalty/tiers when the app starts. It is a small, keyless, cacheable read.

Cache locally

Store the response with its generated timestamp. On next launch, show the cached ladder immediately and refresh in the background — see caching the ladder.

Render correctly

Show the tiers in the order received (Bronze→Platinum) and the discount as a percent directly (0.5 → "0.5%").

Getting the app experience right

In a native or mobile app the network is the enemy of a smooth first impression, so the pattern here matters. Fetching the ladder once and caching it locally means the tiers appear instantly on every subsequent launch, with a background refresh keeping them current without ever blocking the interface. Because the response carries no personal data, caching it on the device is perfectly safe. The two details people most often get wrong are rendering order and units: the tiers already arrive Bronze to Platinum, so show them as received, and the discount is in percent units, so a value of 0.5 is simply “0.5%”. Get those right and the ladder reads correctly everywhere.

Frequently asked questions

How do I avoid a blocking network call on launch?

Cache the ladder locally and render it instantly from cache, refreshing in the background. The generated timestamp tells you when to update.

Funding for UK limited companies

Credicorp lends to your company, not to you personally — short-term working capital with no personal guarantee. See what your business could access.