RORK LABJP
TOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the roundTOOLING — Rork's developer repos keep moving: rork-xcode was updated on July 16, rork-device on July 15, and rork-plist on July 13OPUS46 — Claude Opus 4.6 is live in Rork, and Rork Max is built to assemble apps on top of Claude CodeSIM — A cloud iOS simulator runs in the browser, with one click to install on a device and two clicks to publish to the App StoreMAX — Rork Max emits pure Swift rather than React Native, reaching iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and even iMessageNATIVE — That opens up HealthKit, ARKit and LiDAR, NFC, Dynamic Island, Live Activities, 3D through Metal, and on-device inference with Core MLSEED — Rork raised a $15M seed led by Left Lane Capital, with Peak XV and a16z Speedrun joining the round
Articles/Dev Tools
Dev Tools/2026-06-19Advanced

Trimming App Size for Rork Max Apps: App Thinning and On-Demand Resources

Rork Max ships images and fonts straight into the bundle, so a generated SwiftUI app quietly grows heavy. Here is how I use App Thinning and On-Demand Resources to shrink the first download, with the device numbers I measured and a size budget you can run.

Rork Max230App ThinningOn-Demand ResourcesApp SizePerformance23

Premium Article

One morning I opened App Store Connect for my own wallpaper app and the download size had crossed 180MB. I thought I had only added a few new screens with Rork Max, yet the first download had crept up toward the cellular warning line.

When I traced it, the generated code was placing high-resolution images and several custom fonts straight at the root of the bundle. Rork Max is excellent at producing a screen that looks finished as fast as possible, but it does not manage your delivery size for you. That was the lesson of the morning.

As an indie developer who has run apps for years, I have learned that size is a metric that bites you quietly. What follows is the full path of taking the Swift native code Rork Max emits and shrinking the first download with App Thinning and On-Demand Resources, with the numbers I actually measured.

Where app size actually hurts

The reason to care about size is not aesthetics. It is the drop-off right before install.

The App Store caps downloads over cellular, and above that cap the user sees a "connect to Wi-Fi" warning. Someone who reached your store page through an ad or a referral often leaves at that single screen. I have an app where pushing the size down into the low 90s of megabytes noticeably improved the first-install completion rate in my own tracking.

The second cost is the traffic of every update. If you ship weekly, your users download again and again. A few dozen megabytes per download adds up.

What App Thinning does for you automatically

App Thinning is Apple's mechanism, and it has three parts. Slicing extracts only the resolution each device needs. On-Demand Resources let you fetch resources later instead of bundling them up front. Bitcode, which used to be the third part, has been retired.

The easy misunderstanding is that Slicing only works when assets live in the asset catalog. Put an image at the bundle root — exactly what generated code tends to do — and Slicing skips it, so every resolution ships to every device. That is the most common reason a Rork Max build balloons.

Thank you for reading this far.

Continue Reading

What follows includes implementation code, benchmarks, and practical content we hope you'll find useful. This site runs without ads — server and development costs are supported entirely by members like you. If it's been helpful, we'd be truly grateful for your support.

WHAT YOU'LL LEARN
How to structure your asset catalog so Slicing actually kicks in, and how to fix the bundling mistakes generated code tends to make
An NSBundleResourceRequest implementation that moves a 40MB pack out of the first download via On-Demand Resources
A size budget in megabytes, plus the check routine and decision rules that keep it from creeping back up
Secure payment via Stripe · Cancel anytime

Unlock This Article

Get full access to the rest of this article. Buy once, read anytime. This site is ad-free — your support goes directly toward keeping it running.

or
Unlock all articles with Membership →
Share

Thank You for Reading

Rork Lab is ad-free, supported entirely by members like you. We publish practical guides daily with implementation code, benchmarks, and production-ready patterns. If you've found it useful, we'd love to have you on board.

  • Copy-paste ready implementation code
  • New advanced guides published daily
  • $5/mo or $10 for lifetime access
View Membership →

Related Articles

Dev Tools2026-07-06
Migrating Rork Max SwiftUI to @Observable: Narrowing the Re-renders ObservableObject Was Spreading
Rork Max tends to generate SwiftUI apps built on ObservableObject and @Published, where a single state change re-evaluates every subscribing view. Moving to the Observation framework's @Observable narrows invalidation to the property level. Here is the migration path, plus the view-body execution counts I measured in Instruments before and after.
Dev Tools2026-06-24
Fixing Stutter When a Rork Max SwiftUI Image Grid Scrolls
Measure why a Rork Max SwiftUI image grid stutters while scrolling, then fix it with ImageIO downsampling, off-main-thread decoding, and stable cells to cut real-device hitches.
Dev Tools2026-06-24
Quietly Dialing Back Heavy Work When the Device Gets Hot or Enters Low Power Mode
How to watch ProcessInfo's thermalState and Low Power Mode and degrade heavy work in stages when the device is hot or the battery is low, with working Swift code.
📚RECOMMENDED BOOKS
Build a Large Language Model (From Scratch)
Sebastian Raschka
LLM Dev
Prompt Engineering for LLMs
Berryman & Ziegler
Prompting
AI Engineering
Chip Huyen
AI Eng
* Contains affiliate links
See all →