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-05-01Advanced

Implementing Screen Recording and Broadcast in Rork Max — A Production Guide for ReplayKit and MediaProjection

Integrate iOS ReplayKit and Android MediaProjection into your Rork Max app for gameplay recording, tutorial creation, and live broadcasting—covering the full production pipeline.

Rork Max230ReplayKitMediaProjectionScreen RecordingLive BroadcastiOS109Android43

Premium Article

All I want is a "record" button — why is this so hard?

A user wants to share what they did inside your app. A gamer wants to capture a high score moment for social media. A creator wants to make a tutorial and post it on YouTube. When these requests come in, "screen recording, easy enough" turns out to hide a surprising amount of complexity.

iOS gives you ReplayKit, which on paper looks tidy. But the docs list four different APIs—In-App Recording, Broadcast Upload Extension, Broadcast Pairing, App Recording—and it's not obvious which one you should reach for. Android is messier still: the MediaProjection API requires a Foreground Service paired with a persistent Notification, and if the lifecycle isn't perfect the OS will silently kill your service mid-recording. On top of that, getting any of this working from React Native means writing native modules or stitching together community libraries.

I've shipped recording features in three apps now, and the first attempt I made hit the Broadcast Upload Extension's 50 MB memory ceiling and crashed in production. App Store review then rejected the build because "the app does not provide a clear indication that screen recording is active." This guide is the writeup I wish I'd had on day one—real implementation patterns for Rork Max apps, with working code and the operational pitfalls called out.

Four ReplayKit APIs — which one should you actually use?

ReplayKit has been around since iOS 9, but the API surface has grown in waves. Here's what each one is for, in plain language:

  • RPScreenRecorder (In-App Recording): Record the app itself, then let the user trim, save, or share the resulting MP4. Best for highlights, tutorials, and shareable moments. Easiest to implement
  • RPBroadcastActivity (Broadcast): Stream directly to Twitch, YouTube Live, etc. Requires a Broadcast Upload Extension target with significant system constraints
  • In-App Broadcasting (iOS 12+): Stream to your own backend using WebRTC or RTMP. The hardest of the four—you need a media pipeline
  • App-Wide Recording (Control Center): User-initiated from Control Center. Your app has almost no control, so this guide skips it

My recommendation: start with RPScreenRecorder for In-App Recording. Add a Broadcast Extension later only when you actually need streaming. Going in the opposite direction is how I burned weeks the first time around.

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
Developers stuck on how to let users record their in-app moments and share them with friends will walk away with working ReplayKit and MediaProjection implementations for both platforms
Engineers wrestling with Broadcast Upload Extension setup will learn the exact Xcode target configuration, App Group sharing, and sample buffer handling needed to ship it
You'll be able to release a screen recording feature that satisfies both Apple's and Google's latest privacy and review guidelines without rejection
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-04-11
Mastering Native Integration with Rork Max: A Complete iOS/Android Production Guide
A complete guide to integrating iOS/Android native features with Rork Max — from device capabilities and performance tuning to production-ready deployment.
Dev Tools2026-04-08
Rork Max + EAS Build Custom Native Module Errors: Complete Fix Guide
Comprehensive guide to fixing EAS Build errors when adding custom native modules to Rork Max apps. Covers Config Plugin creation, iOS Podfile conflicts, Android Gradle errors, Hermes compatibility, and native initialization issues.
Dev Tools2026-07-13
Losing HealthKit Data on Incremental Sync — Designing HKQueryAnchor Persistence
When step or sleep data double-counts or goes missing on incremental HealthKit sync, the root cause is usually HKQueryAnchor persistence. Here is a working Swift design that handles newAnchor and deletedObjects correctly and stays consistent across reinstalls and background updates.
📚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 →