Regenerate App Store screenshots for the redesigned remote - #192
Merged
Conversation
PR #191 inverted the remote screen: the preview is full-bleed under floating glass chrome instead of a small image stacked above an opaque control panel. Every shipped screenshot still showed the old one -- a blue Photo/Video segmented control, a "Timer: 0s" slider row, 1/2x/Dual lens buttons, a row of flash/torch/settings glyphs. None of that exists, so the screenshots misrepresented the app and undersold the one change users asked for. The redesign also broke how a device screen was composited. The template pasted a preview image into a FIXED sub-rectangle of a flat UI capture, which only worked because the old chrome never overlapped the preview. Now it floats over the picture, so a pasted rect would cover the shutter, zoom pill and mode selector. A remote screen is now three layers: black, the frame aspect-fit (the app's own letterboxing), then a straight-alpha chrome overlay. A capture taken over a black viewfinder IS the chrome premultiplied over black, so the value channel recovers it -- alpha = max(R,G,B), color = pixel/alpha. That is exact over black, and over a bright frame it produces the same washed-out light glass the real app shows, because dark-mode .ultraThinMaterial is additive light over its backdrop. The value channel rather than luma keeps the gold accent and red record disc in hue. tools.py chrome does the keying; --disc forces the shutter opaque (a white disc with a black ring inside it would otherwise key to a hole) and --blank zeroes the device status bar, which the template redraws clean. Consequences worth noting: - The frame reaches 83% of an iPhone screen where the old layout gave it 26%, which is the claim the redesign was making. - One Mac overlay serves the in-scene MacBooks and a second, near-square one the callout slot; the preview is composited rather than baked in, so ui-monitor-mac-cook/-remote are gone. - chrome: "camera" was drawing a back chevron, a red dot and a "?" button that CameraScreenView no longer has. It is now what the screen actually is: a full-bleed preview and a standby button, sized off the screen's short edge so it stays 44pt whether the device is held portrait or landscape. - Callout anchors were re-measured off the overlays, not estimated. The feature-callout slots take a preview with contrast at the edges: glass over a bright flat frame is legitimately near-invisible, which is accurate and useless for a slot whose job is labelling controls. - The Mac callout labels route left and split vertically. Its window sits ~130px from the canvas edge, so an outward label clipped the moment a locale spelled it out (ru TAIMER, vi DEN FLASH & DEN PIN). Verified across all 15 locales by checking every callout screenshot's border for pill or ink pixels. - LIVE PREVIEW was missing from ru/hi/vi/ms/tr, which predates this change -- no slot used the label until now. Scenes are untouched: no Nano Banana generation, no new photography. The iPhone capture's live-frame band is blanked in assets/raw/ before anything enters the repo, and its camera-name chip carried a USB webcam's brand name, which is blanked too. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
The notes still opened on the Stormo engine, which shipped in 9.0.x. The
viewfinder redesign is what this build is, so it takes the lead and Stormo moves
down into "Recently added" alongside Tap to Focus.
Written from what the release actually changed for someone holding the remote --
the preview is full screen, it rotates, the set-once controls are behind one tap,
the link says when the picture has gone stale, and capture feedback stopped
covering the frame you are composing. Camera standby is in there too.
All 17 locale directories. en-GB stays byte-for-byte with en-US and es-ES with
es-MX, per the storefront cross-indexing rule. Kept the existing phrasing for the
connection ("no router or network needed"), which does not contradict the app's
requirement that the Wi-Fi radio be on (2.3.1).
Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Reviewing the lead section I wrote in the previous commit, three calques ran through most languages: "Tray" came out as a physical serving tray or drawer in every language that has a word for one -- da bakke, de Fach, fr tiroir, es/pt bandeja, ms dulang, vi khay, tr cekmece. The thing on screen is a panel, so it now says panel everywhere, English included. "Tile" was worse: da flise, fr tuile, ms jubin, tr karo and hi are all building materials, and zh had Windows Metro's magnetic tile. Dropped the noun -- the sentence reads "and each one shows its current setting", which is what it means. "The controls out of its way" was calqued word for word into the romance languages and Korean. Each now uses its own idiom for stepping back. Language-specific: - da: "stroemmen gaar i staa" reads as the electricity failing, not the video stalling. Now says the picture freezes. "pop op" -> "et vindue". - it: "fuori dai piedi" is too colloquial for a store listing -> "in secondo piano". "live" -> "in diretta", matching the rest of the entry. - ja: two "ga" particles in one clause. Split into two sentences. - ko: "hwamyeon" (screen) where the picture was meant, and a small preview described as "pressed" rather than squeezed. - ru: "Ozhidanie kamery" as a heading -> "Rezhim ozhidaniya kamery". - zh: "tuiliu" is streamer jargon -> plain "send the picture". - fr: "l'appareil qui filme" implied video only -> "qui sert de camera". Same fix for the clunky de "Kameraegeraet" and the vague hi/tr/ms equivalents. Only the lead section changed. The "Recently added" tail is inherited text from the previous release and is byte-for-byte identical, verified per locale; en-GB still mirrors en-US and es-ES mirrors es-MX. Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Contributor
📊 Test Coverage Report✅ 626/638 tests passed · ⏭️ 12 skipped
🎥 Capture & session core
📁 Full report — 87 files
Generated from |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
PR #191 inverted the remote screen: the preview is full-bleed under floating glass chrome instead of a small image stacked above an opaque control panel. Every shipped screenshot still showed the old one — a blue Photo/Video segmented control, a "Timer: 0s" slider row,
1 / 2x / Duallens buttons, a row of flash/torch/settings glyphs. None of that exists, so the screenshots misrepresented the app and undersold the one change users asked for.The compositing had to be rebuilt, not just re-shot
template.htmlpasted a preview image into a fixed sub-rectangle of a flat UI capture. That only worked because the old chrome never overlapped the preview. Now it floats over the picture, so a pasted rect would cover the shutter, zoom pill and mode selector.A remote screen is now three layers: black → the frame aspect-fit (the app's own letterboxing) → a straight-alpha chrome overlay.
A capture taken over a black viewfinder is the chrome premultiplied over black, so the value channel recovers it:
alpha = max(R,G,B),color = pixel/alpha. That is exact over black, and over a bright frame it produces the same washed-out light glass the real app shows — dark-mode.ultraThinMaterialis additive light over its backdrop. Value channel rather than luma, so the gold accent and red record disc keep their hue.New
tools.py chromedoes the keying.--discforces the shutter opaque (a white disc with a black ring inside it would otherwise key to a hole);--blankzeroes the device status bar, which the template redraws clean.The frame now reaches 83% of an iPhone screen where the old layout gave it 26% — which is the claim the redesign was making.
Also fixed
chrome: "camera"was equally stale — it drew a back chevron, a red dot and a?button thatCameraScreenViewno longer has. Redrawn as what the screen is now: a full-bleed preview and a standby button, sized off the screen's short edge so it stays 44pt in landscape too.Back Dual Wide Camera.LIVE PREVIEWwas missing from ru/hi/vi/ms/tr intranslations.js. Predates this change — no slot used the label until now.ui-monitor-mac-cook/-remoteare gone.Release notes
Rewritten across all 17 locale directories, leading with the redesign; Stormo moves down to "Recently added". A self-review of the first draft caught calques that ran through most languages — "tray" came out as a serving tray or drawer (da
bakke, frtiroir, es/ptbandeja, vikhay), "tile" as a building material (daflise, frtuile, trkaro), and da'sstrømmen går i ståread as the electricity failing rather than the video stalling. Fixed in a follow-up commit.Verification
findconfirms noAPP_DESKTOPfile in the iOS tree and no iPhone/iPad file in the Mac tree; Watch captures preserved.cmpconfirms en-GB is byte-identical to en-US and es-ES to es-MX, per the storefront cross-indexing rule.Known gaps
mac0still composites the older Mac camera-screen capture. Reviewed and accepted as negligible.🤖 Generated with Claude Code