RORK LABJP
MAX — Rork Max handles code signing and provisioning so you can submit to the App Store in two clicks, with no local Mac requiredSIMULATOR — Try your app in an in-browser streaming simulator, then scan a QR code to install straight to your device without TestFlightNATIVE — Coverage reaches SwiftUI, ARKit, HealthKit, HomeKit, Core ML, and Metal, going where React Native cannotSEED — Rork raised a $15M seed led by Left Lane Capital in April 2026, joined by Peak XV and a16z SpeedrunGROWTH — Reported at 743,000 monthly visits with 85% growth, widening access to AI-built mobile appsNOCODE — Gartner expects 75% of new applications to be built with low-code or no-code tools by the end of 2026MAX — Rork Max handles code signing and provisioning so you can submit to the App Store in two clicks, with no local Mac requiredSIMULATOR — Try your app in an in-browser streaming simulator, then scan a QR code to install straight to your device without TestFlightNATIVE — Coverage reaches SwiftUI, ARKit, HealthKit, HomeKit, Core ML, and Metal, going where React Native cannotSEED — Rork raised a $15M seed led by Left Lane Capital in April 2026, joined by Peak XV and a16z SpeedrunGROWTH — Reported at 743,000 monthly visits with 85% growth, widening access to AI-built mobile appsNOCODE — Gartner expects 75% of new applications to be built with low-code or no-code tools by the end of 2026
Articles/Dev Tools
Dev Tools/2026-07-11Advanced

Implementing App Clips with Rork Max — delivering the core of your app the moment someone scans a code

Building on the native Swift that Rork Max produces, this note walks through the 15 MB App Clip budget, receiving the launch URL, and handing state off to the full app.

Rork Max220App ClipSwift44iOS108indie development30

Premium Article

Every time I try to show a friend one of my wallpaper apps, I get stuck at the same point. All I want is for them to see a single wallpaper. But first they open the App Store, search, wait for a download, launch the app, and only then reach the first image. By that moment, the initial spark has cooled a little.

I only want to show one wallpaper. Could the install step move behind that one image instead of in front of it? App Clips exist to swap exactly this order around.

Rork Max produces native Swift, which is what makes App Clips reachable at all — they sit in a territory React Native rarely touches. That said, App Clips involve splitting your app into separate targets, so you cannot simply use generated code as-is. You need to understand the structure and edit it deliberately. This note records where those edits go, from an implementation point of view.

What an App Clip actually solves

An App Clip is a small slice of your full app that launches instantly, with no install, showing just one part of what the app does. It launches from a QR code, a dedicated App Clip Code, an NFC tag, or a Smart App Banner on a web page, and presents a single screen in a few seconds.

The important thing is that it is not a "lite" version. Preview one wallpaper, view a restaurant menu, pay for a parking spot. You carve out the single thing the user wants to do right now and leave everything else to the full app. The subtraction of features is itself the design.

From an indie perspective, this is also an experiment in distribution. Print an App Clip Code on a business card or a poster; the person who scans it experiences the core of the app on the spot. The download can wait until after they have tried it and thought, "I want more."

Splitting targets — the first decision that protects your 15 MB

An App Clip ships inside the full app as its own target. This is where you meet the first constraint. An App Clip binary has a strict size ceiling in its uncompressed state.

OSUncompressed App Clip size limit
iOS 16 and later15 MB
iOS 15 and earlier10 MB

15 MB fills up fast once you stack a few real image assets. To stay under it, you share code between the full app and the App Clip while sharply limiting what the Clip actually carries.

In practice, I split it like this. Shared logic — models, the network layer, the single screen's view — goes into a Swift Package or a shared target that both reference. Meanwhile, the heavy dependencies only the full app needs (video playback, analytics SDKs, a billing stack) are not linked into the App Clip target at all. The App Clip's package dependencies are an explicit, minimal list, not a copy of the full app's.

ElementIn the App ClipFull app only
The one preview screen's viewInclude
Shared models / network layerInclude (shared target)
Analytics / ad SDKsFull app only
The full image catalogFull app only

Images on the App Clip side are not bundled on-device; the Clip fetches just the one image it needs from a parameter in the launch URL. That single act of restraint was the most effective lever for staying under the ceiling.

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 split targets and prune dependencies so the App Clip stays under 15 MB
Receiving the launch URL from a QR code, App Clip Code, or NFC via NSUserActivity and going straight to the right screen
Handing the state gathered in the App Clip off to the full app through an App Group and a shared Keychain
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-08
Working Around Rork Max's 20-Geofence Wall with Dynamic Re-registration
In a native Swift app generated by Rork Max, geofences you registered quietly stop firing past a certain count — and it's almost always iOS's silent limit of 20 monitored regions per app. Here's a dynamic re-registration design that keeps only the nearest 20 live, plus a Swift implementation you can drop in.
Dev Tools2026-07-06
Opening Your Rork Max App to Apple Intelligence — Designing App Intents Assistant Schemas and Handling What Doesn't Fit
How to make actions in a Rork Max-generated Swift app callable from Apple Intelligence using App Intents Assistant Schemas — mapping to the fixed schemas, routing what doesn't fit, availability fallbacks, and on-device testing.
Dev Tools2026-07-04
Your Rork Max App Loses the Photos a User Picked After Relaunch — The Trap of Holding Onto URLs Under Limited Photo Access
In a native Swift app generated by Rork Max, photos picked via PHPickerViewController become unreadable after relaunch — because holding onto a URL or PHAsset no longer works in the age of limited access. Here's a design that copies the actual bytes into your own storage the instant they're picked.
📚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 →