Skip to content

Patrick-Kladek/ScreenshotFramer

Repository files navigation

ScreenshotFramer

Twitter: @PatrickKladek License Target Mac Language Swift Build Status

With Screenshot Framer you can easily create nice-looking and localized App Store Images.

How does it work?

It's super simple: Screenshot Framer simply puts pictures on top of each other (think Photoshop Layers), allows you to move them around and saves the resulting image to disk. You can specify the path of every image layer and use a .strings file to localize the displayed texts. Once you're done configuring, you can export all possible image & language combinations at once.

Preparation

  • First check out the repository and build the app. Alternatively you can download the precompiled app here. If downloaded ensure that you run chmod +x /usr/local/bin/Screenshot-Framer-CLI to make it executable.
  • Next open the Sample Project or create your own project structure. When you are using fastlane's snapshot tool you can reuse that folder structure and only add missing files.

backgrounds

This folder allows you to specify background images for your screenshots, if you don't want to go all-white.

device_frames

If you want your screenshots framed in a device, you may use any image here. You can for example download Apple's device images or Facebook's Device Assets and copy them into this folder.

Localized Image Folders

(en-US, de-DE, ...) are generated using fastlane snapshot or you may also copy them into this folder. Important is that you have a strings file in this folder called screenshots.strings.

"1" = "It Starts With a Thought";
"2" = "Add Your Thoughts";
"3" = "Discover Connections";
"4" = "Visualize Your Idea";
"5" = "Productive on the Go";
 |
This Number is later replaced with variable "image"
Configuration File

This file contain the configuration for the image export. Open the file iPhone SE and change the number in the image textfield or language popup. You may also change the position and size of each layer or create new layers.

Usage

The main difference to your favorite image editor is that you can specify variables and use them for the image path.

Possible Variables:

  • $image can contain only numbers (typically 1-5)
  • $language contains every sub-folder name in your project folder (in this case Sample Project) excluding backgrounds, device_frames and Export

In the screenshot below the file is: $language/iPhone SE-$image.png. This is automatically translated to en-US/iPhone SE-1.png and this file is then rendered. For German this would for example be translated to de-DE/iPhone SE-1.png.

From the Command Line

  • You can either Install Screenshot Framer on your computer by copying it to /usr/local/bin and run following command
cd ~/Developer/MyProject/Screenshots
Screenshot-Framer-CLI -project "./iPhone SE.frame" 
  • To create screenshots for all devices simply pass the whole directory instead of a file
cd ~/Developer/MyProject/Screenshots
Screenshot-Framer-CLI -project .
  • You can also copy Screenshot Framer to your repository and run it from there
cd ~/Developer/MyProject/Screenshots
./Screenshot-Framer-CLI -project .

Known Limitations & Bugs

Please keep in mind that this tool was made to automate screenshots for a very specific need, so it might not fit yours. If you find bugs please create an issue first. Pull Requests are very welcome, but we also reserve the right to not merge them, if they don't take the tool into a direction we need. Therefore it's best to first open an issue and discuss your plans, before jumping right in and implementing it.

  • No rearranging of layers (drag & drop in table view)
  • May use excessive amount of memory while exporing (up to 4GB)
  • no aspect ratio lock, keep that in mind if you scale images
  • For better overview output is set to Export/$language/iPhone SE-$image framed.png

Screenshot Framer is brought to you by IdeasOnCanvas GmbH, the creator of MindNode for iOS, macOS & watchOS.