◉RORK LABJP
●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SONNET 4.5 — Retires on the Claude API on 11/30, 27 days left. If your app calls it, check the migration target●SDK 58 — Moves to React Native 0.88. R8 is now on by default in Android release builds, and iOS prebuild generates a SceneDelegate●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…●GPT-6.1 SOL — Added to Rork's model menu (09-29) with Low, Medium and High effort; included on Pro and Max●SONNET 5.5 — Claude Sonnet 5.5 is selectable: strong at UI design and faster than Sonnet 5 (09-28)●SONNET 4.5 — Retires on the Claude API on 11/30, 27 days left. If your app calls it, check the migration target●SDK 58 — Moves to React Native 0.88. R8 is now on by default in Android release builds, and iOS prebuild generates a SceneDelegate●OBSERVE — EAS Observe now records native crashes too (SDK 57.0.21 or later, 10/07)●NEW — My App Open Ad Only Showed When the App…
⬡ Dev Tools

Dev Tools

React Native and Expo techniques, build-error and crash troubleshooting, and API integrations that help you take Rork-generated code to production quality.

2026-06-19Advanced

Make ITMS-91053 Stop Catching Your Rork Max App — A Release-Proof Privacy Manifest Workflow

Fixing ITMS-91053 once doesn't keep it away — every new dependency can bring it back. Here's a field-tested workflow to audit your dependency tree, generate declarations, and catch the rejection locally before you upload.

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.

2026-06-19Intermediate

Before You Burn Out Hand-Testing Every Release: Automate Your Rork App's Critical Flows with Maestro

With Rork, a prompt that fixes one screen can quietly break another. Here is how I automate the revenue-critical path from launch to paywall using Maestro and run it in CI, including the spots where I got stuck as an indie developer.

2026-06-18Advanced

A Custom Screen Appears When You Long-Press a Notification in a Rork Max App — Implementing a Notification Content Extension

How to add a Notification Content Extension to a Swift app generated by Rork Max so a custom UI is drawn only when the notification expands. Covers the split with the Service Extension, updating the in-notification UI from a button, sharing state via an App Group, and the order to check when nothing shows — all with working code.

2026-06-18Advanced

Retrofitting Offline-First Into a Rork App: Persistent Cache and a Write Queue

Reviews kept saying the app was blank on the subway. Polishing error screens was not enough, so I retrofitted TanStack Query persistence and an offline write queue into a Rork-generated Expo app. Optimistic updates, reconnect flushing, and keeping the layer safe from regeneration are all covered with code.

2026-06-18Advanced

Running Rork Max Swift Apps in Many Languages with String Catalog

An operational design for taking the Swift apps Rork Max generates into multiple languages, centered on the .xcstrings String Catalog. From extracting strings to handling plurals, pouring in translations, and checking for breakage, these are the lessons from keeping multilingual apps running.

2026-06-18Advanced

Turning Rork App Crash Reports You Can Actually Read — Field Notes on dSYM Recovery, Context Logs, and Staged Distribution

You added Crashlytics, but the stack traces are unreadable. Field notes on restoring dSYM/mapping symbols, logging the context that led to a crash, and gating distribution with App Distribution and GitHub Actions.

2026-06-18Advanced

Building Apple Watch Complications with WidgetKit in a Rork Max App

A concrete walkthrough for adding watchOS complications and Smart Stack support to a SwiftUI app generated by Rork Max, covering target setup, cross-process data sharing, and timeline design.

2026-06-17Advanced

Auditing the Dependencies Rork Generates: A Supply-Chain Hygiene Routine

Even a four-screen Rork app pulls in 900+ transitive dependencies. Before a vulnerability lands and you cannot tell which app is affected, build an audit habit with npm ls, npm audit, overrides, and depcheck — framed for running several apps at once.

2026-06-17Advanced

Offline-First Sync for SwiftData in Rork Max — Merging Changes Without Conflicts

How to make the SwiftData apps Rork Max generates sync offline-first so edits survive a flaky connection. Instead of overwriting whole rows, we merge per change, propagate deletes with tombstones, and queue writes that can be resent — shown in code, with the production trade-offs that actually mattered.

2026-06-17Intermediate

Spotting the 30% of Bugs Rork Can't Fix Itself — A Hand-Fix Workflow Built Around Export

Rork resolves roughly 70% of the bugs it hits on its own; the remaining 30% needs your hands. Here is the criteria I use to decide whether to keep re-prompting or export and fix it myself, plus working code for the fixes.

2026-06-17Intermediate

Your Rork App Is Stuck on "Processing" in App Store Connect — A Field Guide to Getting It Unstuck

You uploaded a Rork-built app to App Store Connect, but the build sits on Processing for hours and never shows up in TestFlight or for submission. Here is the exact diagnostic order I follow, how to read the ITMS error codes, and a short script that reads the processing state from the API — with working code.

2026-06-17Advanced

Checking Age Without Collecting Birthdays — Wiring the Declared Age Range API into a Rork App

How to use the iOS 26 Declared Age Range API to receive an age band without ever storing a birthdate, with both the Rork Max native Swift path and the standard Rork (Expo) native-module bridge, plus where to draw the responsibility boundary.

2026-06-17Advanced

Why Your Rork Max Native Swift Widget Freezes After Day One — Designing the TimelineProvider Refresh Budget

Native Swift home screen widgets generated by Rork Max stop rotating after the first day unless you understand the TimelineProvider refresh budget. Here is how reloadPolicy, App Groups, and deep links fit together in a real app.

2026-06-16Intermediate

Notifications You Can Finish Without Opening the App — Interactive Notification Actions for Rork Apps

Those buttons and text fields that appear when you long-press a notification. Here is how to implement interactive notification actions in a Rork-built Expo app for an experience that completes without launching, including the background-execution pitfalls.

2026-06-16Advanced

Putting Your Rork Max Native App's Content into iPhone Search — Becoming a 'Findable' App with Core Spotlight

Index the content of the native Swift app Rork Max generates into Core Spotlight, so users reach a specific in-app screen straight from iPhone search. Covers adding, updating, and removing index entries, plus the production trap of stale search results, from an indie developer's view.

2026-06-16Advanced

Landing Users on the Right Screen Right After Install — Deferred Deep Links for Rork Apps

When someone follows a campaign link and installs through the store, the 'where did they come from' context is gone by launch time. Here is how to implement deferred deep linking in a Rork-built app without any third-party SDK.

2026-06-16Advanced

Designing CloudKit Sync in a Rork Max Native App — Handling Conflicts and Deletes

You want the same data on iPhone and iPad. When you add CloudKit to a Swift app generated by Rork Max, the hard part is not saving — it is conflicts and deletes. Here are the design decisions I settled on.

2026-06-16Advanced

Why Your Rork App's Stripe Webhooks Drop Events Only in Production — Field Notes on Idempotency, Retries, and Out-of-Order Delivery

A field-tested four-layer design for stabilizing Stripe webhooks that pass locally but silently misfire in production: signature verification on Workers, event-ID idempotency, fast-2xx-then-process, and a reconciliation job that survives out-of-order delivery. Built around Cloudflare Workers and KV.

2026-06-16Advanced

I Initialized Ads Before Restoring Purchases, and Paying Users Saw a Banner Flash — Cold-Start Ordering for Rork (Expo) Apps

Consent, ATT, ad SDK init, purchase restore, and remote config all try to run in the same few hundred milliseconds at launch. Get the order wrong and a paying user sees a banner flash, or measurement fires before consent in the EEA. Here is how I fold a Rork-generated Expo app's startup into a single orchestrator and kill the races by design.

2026-06-16Advanced

Controlling HomeKit Accessories from Your Rork Max Native App — Permission and State-Sync Lessons from Indie Shipping

A walkthrough of adding HomeKit to the native Swift app Rork Max generates: listing and controlling accessories, from the permission dialog wording to the state-sync traps. Covers the territory React Native struggles to reach, from a working indie developer's perspective.

2026-06-16Intermediate

Keeping Expo Push Tokens from Slipping Through the Cracks in Production

After adding re-engagement push to a Rork-generated Expo app, the delivered count came in well below the active install count. The cause was missed token updates and stale tokens left to pile up. Here is the lifecycle I settled on, with code: registration, refresh, server storage, and pruning.

2026-06-16Advanced

Adding SwiftData to a SwiftUI App Generated by Rork Max

Rork Max can produce polished SwiftUI screens, but persistence often stops at @State. Here is how I layer SwiftData onto generated code: model design, wiring the container to views, and a schema migration pattern that survives shipping.

2026-06-15Advanced

Keeping Login Alive in a Rork-Built Expo App — Preventing Token-Refresh Races with Single-Flight

Add login to the Expo app Rork generates and it works at first, but in production the 'I got logged out on my own' reports creep in. Most are token-refresh races. This covers a reliability design that single-flights refresh, stores tokens safely, and handles expiry correctly.

2026-06-15Advanced

Designing Apps That Keep Working When the Signal Drops — Optimistic Updates and Resolving Conflicts on Reconnect

Make the Expo apps you build with Rork keep responding even when the signal drops in a subway or elevator. We assemble optimistic updates that move the screen first, and conflict resolution that reconciles when the connection returns, in working code.

2026-06-15Intermediate

Exposing Your Rork Max App to Siri and Shortcuts with App Intents

How to add App Intents to a Swift app generated by Rork Max so Siri and Shortcuts can invoke your actions, from registering an AppShortcut to the production gotchas, with real code.

2026-06-15Advanced

The Users You Cut Off as Churned Were Still Willing to Pay — Implementing Grace Periods That Keep Access Alive

A failed renewal is not a cancellation. If you revoke access during the grace period, you throw away recoverable revenue. Here is how to tell grace, billing retry, account hold, and real churn apart in a Rork (Expo) app, keep access during grace, and guide users back.

2026-06-15Advanced

Running a Neon + Drizzle Backend for Your Rork App in Production — Notes on Edge Connections, Zero-Downtime Migrations, and Type-Safe Queries

After wiring Neon Serverless Postgres and Drizzle ORM into a Rork app's backend, the friction shows up in production. These are implementation notes on choosing an edge connection model, migrating without locking tables, and designing type-safe queries that don't balloon into N+1.

2026-06-15Intermediate

Stopping the Slow Drift of Colors and Spacing on Every Regeneration with a Single Source of Design Tokens

Every time Rork regenerates a screen, button colors and spacing shift a little. Here is a design that freezes your tokens in one place and steers generated output to always reference them.

2026-06-15Advanced

Drawing the Line Between Rork Max's Swift Output and the Expo Build

Rork Max now generates native Swift, while the standard Rork keeps producing Expo (React Native) apps. Here is how to split responsibilities between the two engines inside a single app business, viewed from real maintenance cost.

2026-06-15Advanced

Showing Live Progress in the Dynamic Island from a Rork Max Swift App

How to add an ActivityKit Live Activity to a Swift app generated by Rork Max so progress shows in the Dynamic Island, plus the update-related pitfalls I hit in production.

2026-06-15Advanced

Putting a Working Button in a Rork App's Widget — Implementing App Intents So a Tap Acts Without Opening the App

How to put a button in a Rork-generated Expo app's widget that changes state without launching the app. We wire App Intents and WidgetKit together through an App Group, all the way to reloadTimelines — including the two places I lost real time.

2026-06-15Advanced

The Day a Third Reason to Hide Ads Appeared — Folding Rork App Ad-Free Logic Into One Place

Ads show only on one screen for paying users, or ads never show for free users. The usual cause is that the condition for hiding ads is scattered across the code. Here is how I fold three reasons — subscription, lifetime purchase, and a timed reward unlock — into a single state and route every ad through one hook, written as an implementation note from running six apps as an indie developer.

2026-06-14Advanced

Making Rork App API Calls Survive Failure — Timeouts, Exponential Backoff, and Circuit Breakers That Actually Hold

A hands-on implementation log for hardening the API layer of a Rork-generated app. Add timeouts, exponential backoff, and a circuit breaker step by step so your app keeps working even when a dependency goes wobbly.

2026-06-14Intermediate

Stop Burning Your One Push-Permission Shot on App Launch — Pre-Prompt Priming for Rork Apps

If your Rork (Expo) app fires the OS push-permission dialog at launch, every 'Don't Allow' tap closes that channel forever — iOS won't let you ask again. Here's how a self-built pre-permission screen lifts your opt-in rate, with the Expo code to do it.

2026-06-14Advanced

Actually Delivering 'It Updates Without Opening' in Expo — A Realistic Background Task Design

Building 'content refreshes every morning' into a Rork-generated Expo app runs into iOS background execution being far less dutiful than you expect. Here is a minimal expo-background-task setup plus a design that doesn't break when the task never runs.

2026-06-14Advanced

Building Rork Subscriptions Around RevenueCat Entitlements — Access Checks, Offering-Driven Paywalls, and Restore

Implementation notes for adding subscriptions to a Rork (Expo) app with RevenueCat. Make Entitlements the single source of truth for access, drive the paywall from Offerings so you can change prices remotely, wire up restore and the customer-info listener, and avoid the sandbox traps — all with working code.

2026-06-14Advanced

Reading Steps and Sleep into Your Rork Max Native App — HealthKit for Calm, Number-Light Wellness Apps

A walkthrough of adding HealthKit to the native Swift app Rork Max generates: reading steps, sleep, and heart rate, writing mindful sessions, and handling background delivery — including the App Store review wording and the production-only 'permission granted but zero data' trap.

2026-06-14Advanced

Updating Live Activities Remotely: Putting Live Lock Screen Info on a Rork App

A practical design for updating Live Activities remotely through APNs so the Lock Screen and Dynamic Island stay current even when your app is closed. Covers push-to-start vs update tokens, the content-state payload, stale-date and the update budget, and bridging from Expo, with working code and the issues I hit in production.

2026-06-14Intermediate

When Your Rork App Gets ITMS-91053 — A Practical Guide to Privacy Manifests and Required Reason APIs

Submitting a Rork-generated Expo app to the App Store can trigger Privacy Manifest warnings even when you never wrote the offending code. Here is how to clear both Required Reason API and SDK manifest issues before you submit.

← All Articles