More screenshots

    Works with the AI tools you already use

    Claude CodeClaude CodeCursorCursorCodex CLICodex CLIMuseMuseDotsDots+22 more

    Store Screenshots & Play Video (Flutter & React Native)

    1

    Captioned, device-framed App Store and Play screenshots in every language, plus a Play preview video, made from your real Flutter, React Native or Expo app and checked against both stores' rules.

    $19

    Secure checkout via Stripe

    30-day refund guarantee

    Converts to your local currency at checkout

    Security scanned
    Store Screenshots & Play Video (Flutter & React Native)

    Store Screenshots & Play Video (Flutter & React Native)

    Example session with this skill installed

    Make store screenshots for this app: iPhone, iPad and the three Play sizes, in all five listing languages, and a Google Play preview video.

    • Read your context and instructions
    • Compiled the store screenshots

    Captured, composed and checked the full store set from the running app, plus a Play preview video. All 104 screenshots pass both stores' rules.

    What was made

    SlotDevice drivenSizeLanguagesShots
    App Store iPhone 6.9"iPhone 17 Pro Max simulator1320 x 2868en, de, es, fr, pt-BR8 each
    App Store iPad 13"iPad Pro 13-inch simulator2064 x 2752en, de, es, fr, pt-BR8 each
    Play phonePixel 3a emulator1080 x 1920 (9:16 canvas)en-US8
    Play 7-inch tabletNexus 7 emulator1200 x 1800en-US8
    Play 10-inch tabletPixel Tablet emulator, rotated to portrait1600 x 2440en-US8

    Each shot has a drawn device frame, a caption with one highlighted word in that shot's language, and a background that runs across the set. Shot 1 is a large hero device; shots 2 and 4 magnify one control in a callout (a separate region per device, because the toolbar sits lower on tablets).

    Checks

    python3 validate.py
    0 errors, 0 warnings across ipad-13, iphone-6.9, phone, seven-inch, ten-inch.
    

    The same checker on a deliberately broken set:

    error: 02_legendary.png: has an alpha channel; both stores reject transparency
    error: 03_new.png: 1290x2700 is not an accepted iPhone 6.9" Display size
    error: 04_studio.png is byte-identical to 01_collection.png
    error: 99_x_final_state.png: diagnostic frame from a failed capture
    error: the iOS target declares iPad support but there is no iPad set
    

    Play preview video

    play_preview.mp4: 18.4 s, 1080 x 1920, H.264. Three clips filmed on the Android emulator while the test drove the app at human pace (a foil card catching a moving finger, drawing on a card, flipping a card to its back), each trimmed to its VIDEO_START / VIDEO_END marks, captions burned in, a clean 9:41 status bar, and a 2 s end card.

    Found along the way

    • The 10-inch tablet emulator letterboxed the portrait app into 1110 x 1480; it was rotated and recaptured at full size.
    • On both tablets the editor leaves the bottom fifth of the screen empty. That is a layout fix for the app, not the screenshots.

    Next steps

    1. Look through the contact sheets in build/screenshots/sheets/ (one per slot and language).
    2. Upload each folder listed in screenshots/README.md to the console field named beside it.
    3. Upload play_preview.mp4 to YouTube as unlisted with monetization off, and paste the watch URL into Play Console > Main store listing > Video.

    Connects securely to your tools. The creator never sees your data.

    About this skill

    I ship small apps on my own, a shelf of them on the App Store and Google Play, and every one of them needed screenshots: iPhone, iPad, Play phone, 7-inch and 10-inch tablet, in every language the listing is in. That's well over a hundred images per app, and every time a screen changed they were out of date.

    Design tools don't solve that. The screenshots drift from the app the moment you touch it. So I wrote this skill to make them from the app itself.

    What it does

    You describe the shots you want. In a Flutter app, Claude writes a small integration test that drives your real app to each screen. In a React Native or Expo app, the skill generates Maestro flows from your screenshots.json instead, so the app needs no test code. Then the skill:

    • captures every device and language on Xcode simulators and Android emulators, at the exact pixel size each store wants, with a fresh install per device so old test data never shows up
    • composes them into store images: a drawn device frame, a bold caption with a highlighted keyword, a background that runs across the whole set like a panorama, and a different layout on each shot (a big hero shot, tilted phones, a magnified callout of the one control the caption is about)
    • checks them against both stores: Apple's exact sizes, Play's side and ratio limits, transparency (both stores reject it), shot counts, duplicate shots, leftover frames from a failed capture, and the rule that an app declaring iPad support needs an iPad set
    • makes a Google Play preview video: it films short clips on the Android emulator while the test plays your app at human speed, trims them to the moment that matters, puts them in the same frame and captions, and joins them with a swipe. Captions are burned in because Play autoplays muted.
    • makes you look: one overview image per set, and a checklist of what to look for that no script can see (a test ad banner, a debug label, white text on a pale background)

    No design-tool account, no subscription, no frame images to license. The device frames are drawn in code.

    Why it's built the way it is

    Each rule came from something that went wrong on a real listing:

    • fastlane snapshot can't drive a Flutter app (XCUITest sees one opaque view), so this uses integration_test and renders the app's own pixels.
    • A tablet emulator with a landscape screen squeezes a portrait app into a small box, and that box is what gets captured. The skill rotates the emulator first.
    • A test ad banner photographed into a listing reads as a broken advert. The capture refuses to run an ad-supported app without a screenshot mode switch. (It found exactly that banner in one of my own apps' Play screenshots.)
    • A scene renamed without a caption used to leave a blank band and look finished. A missing caption now stops the build.
    • Play's featuring guidance wants 9:16 phone shots, and most phones capture taller. The phone set is composed on a 9:16 canvas automatically.

    React Native and Expo

    The capture step picks the path from the project: pubspec.yaml means Flutter, a package.json that depends on react-native or expo means React Native or Expo. For React Native and Expo it writes one Maestro flow per scene, locale and platform, sets a clean status bar (simctl override on iOS, demo mode on Android), switches the language, and drops the images into the same folders the Flutter path uses, so captioning, framing, validation and the Play video work unchanged.

    Tested end to end on Android with Maestro 2.11: two locales, a demo-mode status bar, then compose and validate with 0 errors. The iOS simulator path for React Native has not been run on a device yet. It needs Maestro, Java 17+ and a release build of your app (not Expo Go).

    What you get

    • SKILL.md with the workflow, how to choose and order shots, captions, and the traps
    • four scripts: capture.py, compose.py, validate.py, video.py (each answers --help)
    • Dart templates for the capture test, the video test and the drivers
    • a screenshots.json template: devices, languages, colours, captions, per-shot layouts
    • the store size tables, with links to Apple's and Google's pages, checked October 2026

    Requirements

    • Claude Code, Flutter, Python 3.9+ with Pillow (pip install Pillow)
    • Xcode simulators for App Store sizes, Android emulators for Play sizes
    • ffmpeg, only for the Play video

    What it doesn't do

    • It doesn't upload. You (or your fastlane lanes) upload the folders it writes, and it tells you which folder goes in which console field.
    • It doesn't invent your captions. Claude drafts them with you; you approve.
    • The video is for Google Play. Apple's App Preview format isn't covered yet.

    How to use

    Skills on Agensi run inside your AI agent. Copy the prompt, paste it into your agent, and it connects to Agensi and installs this skill for you. If a payment is needed, your agent shows it to you first.

    Reviews

    No reviews yet

    Be one of the first to try it. Every listed skill passes our trust checks below.

    Security scanned

    Passed our 8-point scan before listing

    Fresh listing

    Recently published to Agensi

    30-day refund

    Not a fit? Get your money back

    Trust & safety

    Security scanned

    Verified clean 4 days ago

    • Passed all security checks, Safe to install

    Needs access to

    Google
    Apple

    Listed5 days ago

    What's inside

    Frequently Asked Questions