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-07-18Advanced

The Generated Screen That Quietly Jams at AX5 and in German — Putting Layout Resilience Checks on Rork Max SwiftUI

A record of running every Rork Max generated SwiftUI screen through pseudolocalization and the largest text size to find exactly where it jams. Covers when to reach for ViewThatFits, ScaledMetric and layoutPriority, plus the snapshot checks that catch regressions every time you regenerate.

Rork Max230SwiftUI64Dynamic Type2PseudolocalizationLayoutSnapshot Testing

Premium Article

Have you ever dragged the text size slider all the way to the right and then opened your own app?

I did that one afternoon with a settings screen Rork Max had built for me, and then I sat there for a while without saying anything. The toggle label ran off as "Refresh in the backgro…" and the switch that belonged beside it had been shoved clean off the edge of the display. The switch existed. My thumb simply could not reach it.

Xcode previews: green. Simulator: green. The browser live simulator, naturally, also green. At the default text size and in the default language, nothing about that screen was broken.

As an indie developer, nobody runs this kind of check on your behalf. There is no QA engineer and no review meeting. I was the one who looked at all that green and decided it was done — which leaves the job of doubting that decision with me as well.

This is a record of what happened next: putting all 23 Rork Max generated screens through pseudolocalization and the largest text size, and finding mechanically where they jam. Where they failed, how I fixed them, and how I now catch the same failures coming back after every regeneration — with the actual numbers and the actual code.

Why generated screens only ever get checked at the defaults

Rork Max emits pure Swift from a prompt. Skipping React Native means SwiftUI's layout system applies directly, which is the appeal — and it also means you inherit SwiftUI's layout weaknesses directly.

Reading through the generated code, a pattern was obvious.

Common shape in generated codeAt the defaultsUnder extreme conditions
Label and control dropped straight into an HStackFineLabel expands, control is pushed off-screen
Fixed-width button via .frame(width: 120)Nicely sizedText truncates to ... and loses its meaning
Absolute .font(.system(size: 15))Exactly as intendedIgnores the text size setting entirely
Two columns assuming padding(.horizontal, 16)FitsWraps one character per line in long languages
Right alignment forced with Spacer()Cleanly flush rightLoses the tug-of-war against the label

The model is not cutting corners. If the prompt never says "must survive 310% text size," the model picks the arrangement that looks best at the defaults. That is a correct response to the instruction it was given. The problem was that I had only ever specified the defaults.

The awkward part is that this class of failure rarely reaches you through reviews. People who run their phone at large text sizes tend to delete an app they cannot operate. You do not even get the one star.

Pseudolocalization: a check you can run before translating anything

You do not need finished translations to find out whether your layout survives long strings. Xcode's pseudolanguages do it for you.

Under Scheme → Run → Options → App Language, sitting among the real languages, you will find these.

PseudolanguageWhat it doesWhat it surfaces
Double-Length PseudolanguageRepeats every string twiceJamming, truncation and push-out in long languages
Accented PseudolanguageAdds accents and wraps strings in [ ]Hardcoded, unlocalized strings
Right-to-Left PseudolanguageForces a pseudo RTL presentationAsymmetric layouts pinned to .leading
Bounded String PseudolanguageDraws boundaries around each stringWhere clipping is actually happening

Accented is worth running first, because it catches something more fundamental than layout: strings that were never localized at all. Anything without brackets around it is baked into the source. Rork Max generally honors a String Catalog instruction, but error messages and accessibility labels did slip through in my project. I wrote that side up separately in Running Rork Max Swift Apps in Many Languages with String Catalogs.

Double-Length is the subject here. Without waiting for real German copy, you learn which parts fold first when string length roughly doubles. In practice German runs about 1.3–1.6× English, and Finnish or Hungarian stretch further still. Doubling is a little harsh, but as a margin-design load it turned out to be about right.

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
Running Xcode's Accented and Double-Length pseudolanguages against Rork Max screens: 9 of 23 jammed, and the three distinct ways they failed
A decision table for ViewThatFits, layoutPriority, ScaledMetric and dynamicTypeSize, with complete card code that survives AX5 (310%)
Snapshot test code covering 4 conditions to catch regressions after every regeneration, and how the CI run went from 11 minutes to 2m40s
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-12
A symbolEffect Field Memo: Making Icons Move Nicely in Your Rork Max App
Animate SF Symbols in a Swift app generated by Rork Max using bounce, pulse, variableColor, and contentTransition, with working code, OS-version gating, and the mistakes I made from over-animating.
Dev Tools2026-07-09
Getting Rork Max's Swift Through Swift 6's Strict Concurrency Checking
A field record of taking a Rork Max-generated SwiftUI app through Swift 6 complete concurrency checking: 217 warnings cleared target by target, where @MainActor actually belongs, and measured before/after numbers.
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.
📚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 →