Skip to content

chore(store): App Store screenshot kit and the 6.9" set - #45

Merged
Ivan-LB merged 2 commits into
devfrom
chore/store-screenshots
Aug 18, 2026
Merged

Ivan-LB merged 2 commits into
devfrom
chore/store-screenshots

Conversation

@Ivan-LB

@Ivan-LB Ivan-LB commented Aug 18, 2026

Copy link
Copy Markdown
Owner

Summary

  • Design/ScreenshotKit/ — the pipeline that produces the App Store set from real screens: collect.sh (rename the XCTest attachments), compose.swift (renders each page with SwiftUI ImageRenderer on macOS, so the type is the real New York / SF Pro — nothing embedded), fixtures/receipt-corner-market.png (a rendered, fictional receipt for the scan frame), README.md (the three commands).
  • Savely/Utilities/ScreenshotSeed.swift — DEBUG-only dataset behind -SavelyScreenshotSeed. It wipes the store and seeds exactly what the captions must prove: Trip to Oaxaca 42 % On track · by Dec 12, 2026 · $125/wk, Laptop 17 % Behind · by Mar 1, 2027 · $25/wk with ETA 1+ year, a $1,240 paycheck offering a $150 auto-move, a −22 % month-over-month drop in the 7-month trend, and ordinary expenses with fictional merchants. Compiled out of Release.
  • SavelyUITests/StoreScreenshotTourUITests — walks the eight frames and attaches the raw 1320×2868 captures.
  • TARGETED_DEVICE_FAMILY = 1 — iPhone-only for this release, so Apple does not require a 13" iPad set.
  • Plan doc updated with what was produced and what is deferred.

Why

Savely needed its own storefront identity — not Alisio's colored bands, not Fingo's gradients, not Thirds' cream editorial. The direction (researched and scored in docs/plans/app-store-screenshots.md) is the warm notebook page: green tracked kicker on a hairline rule, regular-weight New York headline, the real app as a flat photo in a warm-ink bezel, and the SproutMark growing one stage per page — the splash animation's own geometry laid across the gallery. Every caption is provable in the screen under it (the "ledger check"), which is why the seed exists.

Test plan

  • xcodebuild build -scheme Savely (iPhone 17 Pro Max)
  • xcodebuild test -only-testing:SavelyUITests/StoreScreenshotTourUITests — 6/6 passed, 11 captures attached
  • swift Design/ScreenshotKit/compose.swift build/captures build/store — 8 pages, 1320×2868
  • swiftlint --strict clean on the touched files
  • Output flattened to alpha-free sRGB (sips -g hasAlpha → no), 138–309 KB each
  • Manual: 25 % zoom legibility check before uploading; confirm App Privacy label reads "Data Not Collected"

Risks

  • The seed deletes local data when the launch argument is present — DEBUG-only, Simulator-only, never run on a device with real data.
  • The set is English-only for now; the es-MX set needs the ~139 en-only strings plus the hard-coded On track / Behind / 1+ year / /wk / greeting / date-pattern literals localized first (tracked in the plan doc).
  • Composition is date-sensitive (month headers, ETAs) — re-run the tour in the submission week.

Checklist

  • Branch named with approved prefix (chore/)
  • Commits follow Conventional Commits
  • No hardcoded user-facing strings added to the app (the store copy lives in compose.swift, not in the UI)
  • No secrets staged
  • Docs updated
  • Tests added or updated for behavior changes

The App Store set from docs/plans/app-store-screenshots.md, produced end to
end from real screens:

- ScreenshotSeed (DEBUG, -SavelyScreenshotSeed) wipes the Simulator store and
  seeds the fictional dataset the captions have to prove: a goal on track with
  a real $125/wk pace, a second goal honestly behind with a "1+ year" ETA, a
  paycheck that offers an auto-move, and a month-over-month drop in the trend.
- StoreScreenshotTourUITests walks the eight screens and attaches the raw
  1320×2868 captures; Design/ScreenshotKit/collect.sh renames them.
- Design/ScreenshotKit/compose.swift renders each page (warm notebook ground,
  green tracked kicker on a hairline rule, regular New York headline, the app
  as a flat photo in a warm-ink bezel, SproutMark growing one stage per page)
  with SwiftUI ImageRenderer, so the type is the real New York / SF Pro.
- TARGETED_DEVICE_FAMILY = 1: iPhone-only for this release, so no iPad set is
  required.
@Ivan-LB
Ivan-LB merged commit 3fe6f7a into dev Aug 18, 2026
1 check passed
@Ivan-LB
Ivan-LB deleted the chore/store-screenshots branch August 18, 2026 21:42
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant