- New
ScreenshotsBoard
to see all screenshots in a give locale on a huge board (in Selectable Preview mode of course)
- Fixed bottom bar size in portrait mode
- Adjusted the default bezels for each display size to match the corresponding flagship device: 5.5" -> iPhone 8 Plus, 6.5" -> iPhone 14 Plus, 6.7" -> iPhone 15 Pro Max
- You can now select specific formats in the preview gallery. When a screenshot doesn't support the format it won't be displayed (previously it would show a default format). So if your screenshot only supports 6.5", eg
Screenshot("Two", format: .iPhone_6_5)
, it will not appear in the preview gallery when previewing the 5.5" display size
- Restored hidden structs (such as
AspirinShotPreview
)
- Added support for iPad 13", iPhone 15 Series
- Changed default iPhone size from 6.5" to 6.7" to reflect App Store Connect changes
- Added support for iPhone 8 Plus for 5.5"
- New
BicolorText
when you want to change the color of the text between*
or**
. Similar toTextThatFills
, without the resizing. ScreenshotSandwichView
allows you to show a title between 2 screenshots (above/below)- New naming format for files. It used to be optimized for fastlane, but you can now pick one that makes it easier to drag & drop files.
- Added support for strong emphasis (
**
) incolorEmphasis
andColoredEmphasisText
- Deprecated
AutoResizableText
in favor ofTextThatFills
which supports markdown, highlight color for (*
or**
) and design/weight modifiers
- Fixed userID failing to remove watermarks
- Small widgets didn't use the title given to them.
- Use semantic versioning
- New
.fontShot()
modifier taking a dictionary ofScreenshotFormat
/Font
.
- Use min values for
.fontShot()
and.offset()
instead as default values - All format aware modifiers (
.fontShot
,.offsetShot
,.paddingShot
,.scaleEffectShot
) take default values.
- Updated the SSL certificate
- New
ScreenshotPreviewsBoard
to preview all formats at once. It has the same signature asScreenshotPreviews
so that it's easy to switch between both.
- [Breaking] the
textColor
attribute ofColoredEmphasisText
was removed since you can just set it using.foregroundColor()
.emphasisColor
was renamed toemphasis
, andtable
totableName
to be consistent with theText
signature. ColoredEmphasisText
can be used withresizable: false
to avoid the auto-resizing effect
- Previews names in Portrait displayed a "L" which indicates Landscape
- Added
.screenshotOnlyPadding(:)
: a padding that is only added when the view is turned into a PNG - Added
.toolbarBlack
and.toolbarWhite
presets for the status bar when shown above a list - Better support of sheets on iPad with the new
ScreenshotWithSheet
. See theScreenshotInASheetView
in the starter kit. - New
@Environment(\.isScreenshotting)
that is true only when the view is being screenshotted. This is more specific than then.isAspirinShot
, which is true when a view is part of a screenshot. It's here to help with rare differences between the view and its rendering. In particular, it was created to deal with padding in the Navigation bar.
- Added the date in the status bar on iPad
- Remove some extra console outputs when exporting
- Early macOS support. Check-out
MacOSNavSplitScreenshotView
in the Starter Kit.
- Some previews didn't use the correct
Screenshot
.screenshotStatusBar()
view modifier to add a status bar to any viewScreenshotAsSheetModifier
and.screenshotAsSheet()
to make it look like your view is presented as a sheet. Showcased in the starter kit (ScreenshotInASheetView
).BottomBarView
andscreenshotBottomBar
to pair withscreenshotStatusBar
and add a bottom bar with the home indicator. Demo in the StarterKit.ScreenshotWithTitleVew
supports both fit and fill modes for the screenshotHomeScreenView
for widgets (seeWidgetsScreenshotView
in StarterKit)
- [Breaking Change]
ScreenshotWithTitleVew
: a cleaner and more versatile api, as well as presets. See the documentation. - Status bar:
- improved behaviour when rescaled: a border could appear between the status bar and content because of pixel rounding
- support iPad landscape layout
- Added
#if DEBUG
statements in all files of the starter kit .productBezel()
can handlestatusBar: nil
if you don't want one.minimalBezel()
now supports a custom style & width- Improved
SFPatternView
to better support any rotation angle, and added an offset value
- Merged
SFPatternStyleView
andSFPatternView
. - Added a
MinimalScreenshotView()
demo
- Fix rendering of previews in a given locale (App Store-like) when there's more than 3 screenshots
- Fixed verticalement alignment of
.screenshotFrame()
- Added UIKit example
- Changed the main view to better cope with screenshots with NavigationStack/NavigationView
- Improved support for Chinese with
AttributedString
andNSLocalizedString
.
- Added background patterns for screenshots:
SFPatternView
andSFPatternStyleView
- You can now specify which formats a
Screenshot
supports, which also means that you can now have galleries and exports in all display sizes and orientations - Added a background around the screenshot when you're not in Selectable mode in previews, so that it's easier to tell where your screenshot starts/ends.
- Fixed accent colors in mini-previews
- Renamed
ScreenshotsPreview
toScreenshotPreviews
- Changed the Text views to assume an
AspirinShot.strings
file instead of anAppStore.strings
file - Made public
StatusBarView
,AutoResizableText
and.aspirinSheet(:)
- Renamed the
.aspirin
modifier that presents AspirinShot via a.sheet
to.aspirinSheet
- Renamed the
.aspirinCure
modifier to launch AspirinShot in place of the app to.aspirinShot
- Added more details in the README
- Added a Starter Kit in the repo: use it for inspiration & as a starting point
- Added more code documentation
- Added this CHANGELOG
- Added all display sizes for iPhone and iPad.