RORK LABJP
MAX — Rork Max generates native Swift apps for iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and iMessagePUBLISH — Rork Max ships 2-click App Store publishing and runs $200/monthRN — The standard Rork builds native iOS/Android apps with React Native (Expo) — the quicker path to a working appPRICE — Rork is free to start, with paid plans from $25/monthFUND — Rork raised $2.8M from a16z; the platform now sees 743k+ monthly visits with 85% growthFLOW — Describe your app in plain English and Rork generates deployable code that can use the camera, notifications, and moreMAX — Rork Max generates native Swift apps for iPhone, iPad, Apple Watch, Apple TV, Vision Pro, and iMessagePUBLISH — Rork Max ships 2-click App Store publishing and runs $200/monthRN — The standard Rork builds native iOS/Android apps with React Native (Expo) — the quicker path to a working appPRICE — Rork is free to start, with paid plans from $25/monthFUND — Rork raised $2.8M from a16z; the platform now sees 743k+ monthly visits with 85% growthFLOW — Describe your app in plain English and Rork generates deployable code that can use the camera, notifications, and more
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 Max175App ThinningOn-Demand ResourcesApp SizePerformance17

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-05-10
Adding Swift Charts to a Rork Max App: Setup, and Why It Stutters Past a Few Hundred Points
How to drop Swift Charts into the SwiftUI code Rork Max generates, where the framework starts choking once your dataset grows past a thousand points, and the downsampling and animation patterns that keep things at 60 fps on real devices.
Dev Tools2026-04-05
Rork Max × Swift Concurrency: The Complete Implementation Guide — Mastering async/await, Actors, and Structured Concurrency
A practical deep-dive into Swift Concurrency for Rork Max developers. From async/await fundamentals to Actor isolation, Structured Concurrency, TaskGroup, and AsyncStream — learn to write production-quality concurrent Swift code with confidence.
Dev Tools2026-06-19
When Rork-Built Lists Stutter: Designing Image Caching and Prefetch
A FlatList from Rork starts stuttering once the images pile up. Here is how I restore smoothness with expo-image caching, recyclingKey, prefetch, and a move to FlashList, with the device numbers I measured.
📚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 →