◉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)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●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)●SDK 58 — Beta since 09/15 with no stable date yet; running projects in Expo Go has required login since 09/03●WIDGET — A write-up traces an iOS widget that renders black only in production builds●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…
TAG

Performance

36 articles
← Back to all tags
Related:
Rork20React Native19Expo7Rork Max7SwiftUI4iOS4FlatList3Animation3expo-image3optimization3Architecture2UI/UX2
◇ App Dev/2026-08-05Intermediate

A JSON File 19% Smaller That Ships Only 3% Smaller — Measuring Catalog Payloads Against gzip

Five payload formats measured on a 20,000-item wallpaper catalog. Key shortening saves just 3.2% after gzip, while a columnar layout cuts 26.8%. Real numbers for Brotli, paging, and JSON.parse time.

⬡ Rork Dev/2026-08-02Advanced

When Two-Character Queries Silently Return Nothing: Measuring Japanese Search Indexes in an Expo App

SQLite FTS5's trigram tokenizer returns zero rows for Japanese queries shorter than three characters, without raising anything. I benchmarked linear scan, a bigram inverted index, and FTS5 over a 20,000-item catalog to find the real threshold.

⬡ Rork Dev/2026-07-24Advanced

Collapsing Duplicate Requests Into One: A Reference-Counted Single-Flight Layer

When several components fire the same API call at launch, you get a burst of identical requests. Here is a single-flight layer that shares one in-flight promise instead: how to build the key that decides the folding, the trap of handing out a failed promise forever, the trap of one caller's abort cancelling everyone, and the test that keeps it all from regressing, with the real network numbers alongside.

⬡ Rork Dev/2026-05-02Intermediate

When Your FlatList Starts Stuttering: Migrating Rork Apps to FlashList v2

When your Rork app's long lists start feeling sluggish, migrating to FlashList v2 makes scrolling dramatically smoother. Here is the practical migration path, taking advantage of v2's removal of estimatedItemSize.

⬡ Rork Dev/2026-04-25Intermediate

Skeleton Screens in Rork Apps — Practical Patterns for Better Perceived Performance

If your Rork app still shows a spinner on a blank screen during load, you are leaving a lot of perceived performance on the table. Here is how I drop skeleton screens and shimmer effects into Rork-generated React Native code without over-engineering it.

⬡ Rork Dev/2026-04-25Advanced

The Machine Learning Optimizations Rork Runs Behind the Scenes — Why Generated Apps Just Feel Faster

Have you noticed Rork-generated apps run smoother than equivalent code you wrote yourself? Multiple ML pipelines are at work behind the scenes. This guide breaks down what's happening at code-gen, build, and runtime — backed by my own benchmarks.

⬡ Rork Dev/2026-07-10Advanced

Adding React Compiler to Expo Let Me Delete 41 Hand-Written memo Calls

I enabled React Compiler on Rork-generated React Native screens and measured the rerender counts with Profiler. Here is how I decided which memo and useCallback calls were safe to delete, how to find the components the compiler bailed out on, and how to catch regressions in CI.

⬡ Rork Dev/2026-07-06Advanced

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.

⬡ Rork Dev/2026-06-29Advanced

When a New Architecture Migration Only Janks in Release Builds — Field Notes on Catching Silent Interop-Layer Fallback

A Rork app on the New Architecture scrolled fine in development but stuttered only in release builds on real devices. The cause: a legacy native module quietly falling back to the interop layer. Field notes on measuring it and rolling out a fix without reverting the whole app.

⬡ Rork Dev/2026-06-27Intermediate

When Your App's Launch Got Quietly Slower Release After Release — Field Notes on TTI Instrumentation and a Startup Budget for Rork Apps

Rork apps tend to start fast on day one, then drift slower as you add features and SDKs. These field notes show how to catch cold-start regressions that averages hide, trace them to a release, and stop the drift with a CI startup budget.

◇ App Dev/2026-06-27Intermediate

Your Animation Keeps Running After You Leave the Screen — Focus-Aware Battery Savings in a Rork (Expo) App

In a Rork-generated Expo app, a gradient or breathing animation can keep running after you push another screen or background the app, quietly draining the battery without ever surfacing as jank. The cause is that Reanimated's withRepeat lives on the UI thread and the navigation stack keeps screens mounted. This shows a lifecycle design — useIsFocused plus AppState — that reliably stops off-screen and background loops, with working code.

⬡ Rork Dev/2026-06-25Advanced

When an Image-Heavy Rork App Quietly Bloats Its Cache and Dies on Memory — Field Notes on Measuring and Capping

In a Rork app where images are the product, expo-image's disk cache and resident memory creep up over a session and surface as OOM crashes. Here's how I measured the bloat, where I set caps, and what I trimmed on the delivery side — with working code, in the order that actually helped.