Skip to main content
Tuist’s Bundle Size Analysis helps you understand, track, and optimize your app’s install and download sizes, ensuring your app stays lean and user-friendly.

Overview

Bundle size analysis provides:

Size Tracking

Monitor install and download sizes over time

Detailed Breakdown

See size contribution of every file and framework

Size Trends

Track size changes across branches and versions
Understanding your app’s size is critical for user acquisition. A 6MB increase can reduce downloads by up to 23% in emerging markets.

Key Metrics

Install Size

What it is: The amount of storage your app occupies on a device after installation.
  • Includes all resources, frameworks, and assets
  • Uncompressed size
  • What users see in Settings > Storage

Download Size

What it is: The size of the app package users download from the App Store.
  • Compressed .ipa file
  • App Store Connect measurement
  • Varies by device (App Thinning)

Size Breakdown

Detailed analysis of size contributors:

Getting Started

1

Build your app

Create a release build:
2

Upload bundle for analysis

Share the app to generate bundle analysis:
Tuist automatically analyzes the bundle and uploads metrics.
3

View analysis

Check the bundle size dashboard:
Or visit your project in Tuist Cloud.

Viewing Bundle Analysis

Dashboard

Access bundle analysis in Tuist Cloud:
  1. Navigate to your project
  2. Go to Insights > Bundle Size
  3. View size trends and breakdowns

Bundle Explorer

Interactive tree view of your app’s contents:
Navigate the bundle hierarchy:
  • Expand/collapse directories
  • See size and percentage of each item
  • Sort by size
  • Filter by file type

Historical Tracking

Monitor size changes over time:

Deviation Tracking

See size changes compared to baseline:
  • 🟢 Within target: Size is stable
  • 🟡 Small increase: +2-5% growth
  • 🔴 Large increase: +5%+ growth (needs attention)

Branch Comparison

Compare feature branch size against main:

Optimization Strategies

Identify Large Assets

1

Find heaviest resources

Sort bundle contents by size in the explorer
2

Analyze necessity

Question each large file:
  • Is it essential?
  • Can it be smaller?
  • Could it be on-demand?
3

Optimize or remove

Apply optimizations (see below)
4

Measure impact

Upload new bundle and compare sizes

Image Optimization

  • Enable App Thinning automatically
  • Device-specific image delivery
  • Compression optimization
  • HEIC/WebP: Best compression for photos
  • PNG: Transparency required
  • SVG: Vector graphics (via SF Symbols or PDF)
Use tools like ImageOptim or tinypng:
Can reduce size by 30-60% without visible quality loss.
Download heavy images on-demand:

Code Optimization

  • Delete dead code paths
  • Remove unused dependencies
  • Audit third-party libraries
In release builds:
Dynamic frameworks add overhead:
  • Prefer static linking for small frameworks
  • Only use dynamic for shared or plugin frameworks

Dependency Audit

1

List all dependencies

2

Measure each dependency's size

Check bundle breakdown for framework sizes
3

Find lighter alternatives

  • Do you need the full library?
  • Can you implement the feature yourself?
  • Are there smaller alternatives?
4

Remove or replace

Update Package.swift or Project.swift
A single large dependency (like Firebase or AWS SDK) can add 10-30MB to your app.

CI/CD Integration

Automatic Size Tracking

Track bundle size in every build:
GitHub Actions

PR Size Warnings

Get notified of size changes in pull requests:

Size Budgets

Enforce size limits:

Best Practices

Set Size Budgets

Define acceptable size ranges:
  • Max install size
  • Max download size
  • Max per-release increase

Monitor Regularly

Check bundle analysis:
  • Every release
  • After adding dependencies
  • When users report issues

Optimize Assets First

Assets are usually the biggest wins:
  • Images: 30-60% savings
  • Videos: Consider streaming
  • Fonts: Subset unused glyphs

Review Dependencies

Audit third-party libraries:
  • Quarterly dependency review
  • Remove unused packages
  • Find lighter alternatives

App Thinning

Leverage Apple’s App Thinning:

Slicing

App Store delivers device-specific assets:
  • iPhone 15 Pro gets @3x images only
  • iPad gets iPad-specific resources
  • Older devices get compatible assets
Setup:

Bitcode (Deprecated)

Bitcode was deprecated in Xcode 14. Modern apps use Metal shader compilation instead.

On-Demand Resources

Resources downloaded when needed:
  • Game levels
  • Tutorial content
  • Additional languages
Example:

Performance Impact

Bundle size affects user experience:
For every 6MB increase, expect a ~1% decrease in download conversion rate.

Next Steps

Build Insights

Analyze build performance and compilation time

Binary Caching

Speed up builds with intelligent caching