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-04-28Advanced

Implementing Share Extensions with Rork Max — Adding Your App to iOS's Share Sheet

A production-ready guide to building iOS share extensions on top of a Rork Max project. Covers App Groups, URL schemes, minimal extension UI, and the gotchas that ship-blocking apps every quarter.

Rork Max229Share ExtensioniOS109SwiftUI63App Group4Deep Link2

Premium Article

If you've ever built a notes app on iOS, you've probably wished you could let users share a Safari article straight into your app from the system share sheet. I burned two full days early on assuming this could be done in React Native alone. The honest answer: share extensions live in their own native target, and JavaScript bundles cannot be wired into them.

The good news is that pairing Rork Max's native SwiftUI generation with a small share-extension target collapses most of that complexity. In this guide we'll walk through adding a share extension on top of a Rork Max base project, sharing data through an App Group, and deep-linking back into the main app — all with code that actually ships and survives App Review. If you're building a Pocket-style read-later app, a notes app, or a social client that pulls in content from other apps, this is the blueprint.

Why share extensions can't live inside React Native alone

Let's level-set on the platform constraints before any code. Share extensions are part of Apple's "App Extension" architecture: they run in a different process from your main app, with their own signed binary. The little panel that appears in the share sheet is effectively a tiny separate app.

App extensions must be authored in Swift or Objective-C. React Native and Expo manage your main app's bundle, but they don't extend into separate extension targets. Open-source bridges like react-native-share-extension exist, but they're frequently unmaintained and force you into UIKit + a JS runtime that's slow to spin up — a poor fit for the few seconds the OS gives an extension to live.

In real products I prefer main app = Rork (React Native) or Rork Max (SwiftUI), share extension = native SwiftUI. With Rork Max, both halves can sit in a single Xcode project, sharing models and styles where it makes sense.

Choosing the right extension type

iOS ships several extension types, and the naming is genuinely confusing the first time. If your goal is "show my app inside the system share sheet," there is exactly one correct answer.

  • Share Extension: receive content and persist or send it from inside your app
  • Action Extension: transform content and hand the result back to the host app
  • Document Provider: expose your app's files inside the Files app

Read-later, notes, social clients, and "save for later" tools all want a Share Extension.

Step 1: Generate the base project with Rork Max

Start with the main app. I keep the Rork Max prompt deliberately small at this stage so the diff after adding the extension is easy to read.

Generate an iOS-only read-later app with Rork Max:
- SwiftUI native target
- Minimum iOS 17
- Show a list of saved URLs and titles
- On launch, read pending items from the App Group
  "group.net.rorklab.readlater.shared" UserDefaults
- Handle the URL scheme "readlater://" with optional ?url=&title=
  query parameters appended to the list
- Persist with SwiftData

Open the generated project in Xcode, replace the bundle ID, signing team, and capabilities with your own, and confirm the app builds and runs on a real device before doing anything else. Wiring up an extension on top of a still-broken main app makes signing failures genuinely impossible to triage.

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
If you've been stuck because share extensions can't be built in React Native alone, you'll get a working Rork Max + native SwiftUI implementation today.
You'll master sharing data between an extension and your main app via App Groups, deep-linking with URL schemes, and designing minimal-yet-useful extension UI.
You'll be able to ship reading-list, note-taking, or social client apps that pull content from other apps into your own — production-ready from day one.
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-30
Building StandBy-Optimized Widgets in Rork Max
A hands-on walkthrough for tuning WidgetKit widgets for StandBy mode, the landscape charging display in iOS 17+. Covers always-on dimming, night mode, and container backgrounds, including which parts of Rork Max's generated code you still have to finish by hand.
Dev Tools2026-05-08
Why Rork Max Cloud Compile Fails — and How to Fix It
A symptom-based guide to fixing Rork Max Cloud Compile failures. Covers code signing errors, Swift version mismatches, dependency resolution failures, and build timeouts with practical solutions.
📚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 →