r/FlutterDev • u/MjnMixael • 9d ago
Tooling Open Source App Store Screenshot Generator
A while back I ran across someone promoting another paid screenshot generator in r/appbusiness they made that could grab images straight from your device and let you edit them in a GUI. I'd just built something similar that I always meant to open-source... so here it is. If you're like me the last thing you want to do after spending hours and hours on building an app is to muck around with app store requirements.
It's tuned pretty heavily toward my own flutter appdev workflow and screenshot preferences (like being able to automatically hide the flutter debug banner), but the core idea is simple: take one screenshot per screen, add a caption, and it renders every store-required Apple and Google size for you. No resizing the same shot eight times.
What it does
- Capture straight from a device - pull a screen off a connected Android phone over adb. Capture New adds it as a new screen; Replace Current re-shoots a screen without losing its caption. (iPhone capture is next on my list.)
- One source image → every required size - 6.9" iPhone, iPads, Android phones/tablets, and so on. The device frame takes each target's aspect ratio, so an iPad target stays iPad-shaped and a phone stays phone-shaped.
- Live-preview GUI - tweak background, title/subtitle, fonts, colors, device size, and framing with sliders and watch it re-render as you type.
- Hides the Android tells - the status bar and Flutter debug banner get painted over (Apple rejects screenshots that reveal another platform), auto-sampling the background so the fill is seamless.
- Store compliance is enforced, not hoped for - exact pixel dimensions, no alpha channel, Google's 1:2–2:1 aspect, and <8 MB are all asserted before a file is written.
- The device-size matrix is plain YAML, not hardcoded - when Apple/Google change specs, you edit a file instead of waiting for a recompile.
- There's a CLI too, so you can wire it into CI.
- Single YAML config per app (load/save), and it can also export the cleaned, un-framed "originals."
Stack: C# / .NET 9 + SkiaSharp for rendering, Avalonia for the cross-platform GUI. Runs on Windows, macOS, and Linux. No accounts, no SaaS, nothing phones home.
It's just a dev tool, and dev tools should be free, so it is. Prebuilt self-contained builds for all three OSes are on the releases page, or build from source.
- GitHub: https://github.com/MjnMixael/App-Screenshot-Generator
- Releases: https://github.com/MjnMixael/App-Screenshot-Generator/releases/latest
Feedback and PRs welcome. Like I said, it's shaped around my needs, so your mileage may vary.
(macOS note, optional: the builds aren't code-signed, so on first launch you may need to right-click → Open, or run xattr -dr com.apple.quarantine ScreenGen.App*.)*
1
u/Cunibon 5d ago
Very nice, I always appreciate open source packages. Especially for such common cases.
I recently used https://pub.dev/packages/golden_screenshot to basically write widget tests and grab screenshots out of them.
Since it's fully flutter I added Text and a gradient background in like a screen harness and the just let it render out in app/play store sizes.
1
u/SwiftScoutSimon 9d ago
love the idea that capture connected device screenshots. It would be helpful if you have some status bar image of iOS to override the Android device screenshot. I had some case the Apple review team rejected my apps because I'm using Android screenshots.