Multi-platform · Local · No code changes

Compress SwiftUI Assets — Smaller Apps Across Every Apple Platform

Compress the images in your SwiftUI app's asset catalog before building — smaller bundles for Mac, iPhone, iPad, and Watch, no code changes.

Quick answer

Drop your SwiftUI project's Assets.xcassets folder into TinyPixels before building. It compresses every PNG and JPEG variant in place, shrinking your final app bundle across every Apple platform target with zero SwiftUI code changes.

How to compress your SwiftUI asset catalog

1

Download and open TinyPixels

Free to install on Mac — no account needed to start.

2

Locate your Assets.xcassets folder

Find it in your Xcode project navigator or on disk within your project.

3

Drop the folder into TinyPixels

Compress app icons, in-app images, and all resolution variants at once.

4

Rebuild in Xcode

Every SwiftUI target — Mac, iPhone, iPad, Watch — ships a smaller bundle.

One asset catalog, every Apple platform

A shared SwiftUI codebase targeting macOS, iOS, iPadOS, watchOS, and visionOS typically bundles the same asset catalog across every target. Onboarding illustrations, in-app graphics, and icons exported from design tools are frequently far larger than needed for the resolutions SwiftUI actually renders them at.

Compressing the asset catalog once means every platform target benefits — smaller downloads, faster installs, and in some cases avoiding size-related friction during App Store review. Compressing assets is a zero-risk change since pixel dimensions and SwiftUI code stay identical.

No SwiftUI code changes

Compress in place — Image views render the same bytes, just smaller.

Every platform target benefits

One compressed asset catalog reduces size across Mac, iPhone, iPad, and Watch.

All resolution variants covered

Compress 1x, 2x, and 3x images in the same batch pass.

Faster archive and upload

Smaller committed assets mean faster Xcode archive and App Store Connect uploads.

Universal images vs. per-scale variants

Xcode's asset catalog supports two ways of providing images, and both need compressing:

ApproachWhat's bundled
Single universal imageOne file, scaled by the system — compress that one file
1x/2x/3x per-scale variantsUp to three separate files per image set — compress every scale, not just @1x
Vector PDF/SVG sourceRendered at build time — usually already small, but still worth checking for bloated embedded metadata

Common mistakes with SwiftUI asset catalogs

Compressing only the @3x variant

Xcode ships every scale variant you've provided — if @1x and @2x are also present, they need the same compression pass, since each is bundled as a separate file.

Not auditing App Icon assets

App icon sets contain many size permutations across platforms (Mac, iPhone, iPad, Watch) — these add up and are easy to overlook during a general asset audit.

Assuming Asset Catalog compilation compresses images

Xcode's actool compiles the catalog into a .car file for faster lookup at runtime, but it doesn't re-encode or meaningfully shrink the underlying image data you provided.

Skipping compression on watchOS-specific images out of low priority

Apple Watch storage is more constrained than iPhone — smaller watchOS-specific assets matter proportionally more there, not less.

Frequently asked questions

How do I reduce app size in a SwiftUI project?

Compress every image in your Xcode asset catalog before building — SwiftUI apps targeting macOS, iOS, watchOS, and visionOS all bundle the same asset catalog structure, so optimizing images there reduces the final app size across every Apple platform target.

Does compressing images affect SwiftUI Image views?

No. SwiftUI's Image view renders whatever bytes are in the asset catalog — a properly compressed PNG or JPEG at the same resolution looks identical on screen while taking up less space in the app bundle.

Should I compress images for multi-platform SwiftUI apps?

Yes, especially so. A single SwiftUI codebase targeting Mac, iPhone, iPad, and Apple Watch bundles the same asset catalog into each target — compressing once reduces size across every platform build.

Can I batch compress an entire asset catalog before a SwiftUI build?

Yes. Drop your project's Assets.xcassets directory into TinyPixels and every image compresses in one pass, ready to commit before your next build or archive.

Shrink your SwiftUI app today

Free to start. No credit card, no account, no cloud. See Pro pricing →