Releases: kayak/SwiftFrame
Support for specifying used locales
You can now specify which locales are used (and which are not). To do so, add a new key locales
to your config file with a regular expression to include or exclude locales. See the README for syntax help. If you don't want to clone the repo and compile SwiftFrame yourself, you can also download the attached, pre-compiled binary.
Binary checksum: beb87c56190e3f814ad807c0857494c90a710cb48e5ded38219a5c85f864c5b1
(use shasum -a 256 path/to/swiftframe/binary
to verify)
Only verify screenshots which are actually used
The tool could previously fail during the verification step if there were screenshots from multiple different device sizes in the same folder. This release fixes that by only verifying the screenshots which are actually used in the config file
Updated dependencies and fixed broken argument parsing
2.1.1 Updated ArgumentParser and fixed failing command parsing (#12)
New year, new SwiftFrame
It's not exactly a new year anymore, but version 2.0 of SwiftFrame is finally here!
Introduction
Version 2.0 introduces a new approach to how you place screenshots. Instead of just screenshots and a background color, you now have to supply a template file which acts as a canvas. This allows you to include 3D device mockups to take your App Store screenshots to new heights. To achieve this, the places in the template file where the screenshots should go later on should be transparent (see Example
folder). The render order is Screenshots -> Template Image -> Text
to make sure devices with rounded corners will work with SwiftFrame as well
New Features
SwiftFrame was almost completely rewritten and there's tons of new features. Here are the most important ones:
Screenshots
- You can (and have to) place your screenshots with almost no limitations on that canvas. That means screenshots can be rotated in 2D as well as 3D space.
- Screenshots can now span multiple screenshot widths (see sample project)
Text
- Going hand in hand with the less restricted screenshot placement, text placement is now also way more flexible. You can place your text anywhere on the canvas by supplying a bounding box (rotation is not currently supported)
- Speaking of text rendering, you can now markup your strings with HTML tags such as
<b>
,<i>
or<u>
and SwiftFrame will take care of the rest. To use this, please make sure the font file you pass in has all the versions you need. - As before, text will be rendered at the maximum font size that fits the string into the given bounding box, unless there's a text group specified. If there are other titles using the same text group identifier, a common maximum will be calculated and used for all titles. This is useful when you want all your strings to have the same size but still be as large as possible
- SwiftFrame now expects
.strings
files for strings which are basically keyed dictionaries. Since there can now be more than one title per screen, they have to have some identifier.
Text Groups
- As mentioned above, text groups are completely new in
v2.0
. They can be used to force multiple strings to use the same font size
Output
- The output images produced by SwiftFrame are now placed into sub-folders and indexed, similar to what
frameit
does. This makes integration with Fastlane a breeze
Gap support is here
Gap Support
You can now specify a gap width (in pixels) that should be skipped over during cropping of the output screenshots. That way you can account for spacing between displayed screenshots on the iOS App Store for example. SwiftFrame
also verifies that your template file is a multiple of screenshot size plus a multiple of gap width if the specified gap width is larger than 0
Improved error messages
Where supported, SwiftFrame
will now inform about expected values and the actual values if it encounters a validation error