Open my wallet

iPhone mockup generator vs screenshot: which to use when

Two tools that produce the same-looking file for very different jobs. The choice comes down to whether the screen exists yet — and whether the audience will read the image as evidence.

Published:

Use a real screenshot when the screen already exists and must be accurate to the shipped build; use a mockup generator when the screen does not exist yet, when you need many controlled variants, or when real data cannot be shown — and use neither where the audience would read the image as evidence.

They are not competing tools

A screenshot documents something that exists. A mockup depicts something — which may exist, may be planned, or may be a demo state you could never produce by hand. Both output a PNG of the same dimensions, which is why they get compared, but they answer different questions and fail in different ways.

The decision table

CriterionReal screenshotMockup generator
Screen must already existYesNo
Fidelity to the shipped buildExact, by definitionApproximate
Time to a first usable assetHours to daysMinutes
Cost of a variant (locale, theme, value)Re-seed and re-shootChange a field
Personal data riskHigh if captured from a real accountNone: nothing real is on screen
Drift over releasesAccurate as of the shoot dateDrifts unless maintained
Edge cases (long strings, RTL, Dynamic Type)Revealed automaticallyOnly if you model them
Valid as evidenceOf your own app, yesNever

Use a screenshot when

There is a second, quieter reason. A screenshot is a form of test. Every time someone captures a real screen for marketing, they look at it harder than they ever look at it in the simulator, and that is when the misaligned badge and the off-by-two-pixel margin get found. Teams that only ever ship generated assets lose that pass without noticing.

The option people forget: the Simulator

Xcode's Simulator sits between the two and costs nothing. It renders with the real UI framework and real font metrics, captures at the simulated device's native pixel size — a simulated iPhone 16 Pro produces 1206 × 2622 — and contains no personal data because there is no real account in it.

It also lets you fix the status bar, which is otherwise the giveaway in captured assets:

xcrun simctl status_bar booted override --time 9:41 --batteryState charged --batteryLevel 100 --cellularBars 4 --wifiBars 3

then capture with xcrun simctl io booted screenshot shot.png. Verify the flags against your own Xcode version — the option list has grown over releases. If you ship a lot of localised sets, driving this from UI tests is the standard way to make the whole set reproducible.

Use a generator when

Wallet screens are the case that gave My Larp Wallet its reason to exist: a portfolio view is a known pattern, the values are the whole point, and nobody should be screenshotting a real one.

Count the cost over the asset's life, not the first export

The comparison that decides most of these arguments is not "how long does the first image take". It is how many times the image will be remade. A landing page hero gets remade whenever the design shifts. A store set gets remade for every locale and every major redesign. A deck slide gets remade whenever the numbers on it change, which is often. Multiply the per-variant cost by that count before deciding, because a route that is twenty minutes slower once and two minutes faster thirty times is the cheaper route.

Use neither when the image would be read as evidence

This is the boundary that actually matters, and it does not depend on which tool made the file. If the recipient would treat the image as a record — proof of a balance, a payment, a holding, a transaction — then a generated mockup is a fabricated document and a screenshot of a demo account is barely better. Product illustration, store listings, decks, tutorials and design reviews are all fine. Anything offered as proof is not.

Quality traps in generated assets

Most mockups that read as fake fail on the same handful of details:

The measured versions of those figures are in the anatomy of a wallet portfolio screen and the status bar guide.

The practical answer

Most teams need both, in this order: generate while the product is being built, so the deck and the landing page exist; capture once the build is real, so the store listing documents what ships; then keep generating for variants the shipped app cannot easily produce. The failure mode is not picking the wrong tool — it is forgetting to replace the generated assets once the real screen exists.

Compose the screen instead of describing it

My Larp Wallet lays out a wallet screen in the browser and exports it at 1179 × 2556 px, the native resolution of an iPhone 14 Pro. What comes out is a mockup, and it says so. One plan, $19/month.

Open my wallet

Keep reading