◉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…
Articles/AI Models
◉ AI Models/2026-05-20Intermediate

A month of running Rork and Claude on Xcode side by side — where each one ended up fitting

Notes from an indie developer who has shipped wallpaper apps on iOS and Android since 2014. After a month of keeping both Rork and Claude on Xcode open on the same desk, the work that fit each one turned out to be more obvious than I expected.

Rork585Claude on Xcodeindie developer43wallpaper app22experience reviewiOS116Android55

The setup I'm running

I have been shipping wallpaper apps on iOS and Android as an indie developer since 2014. Even after the catalog crossed 50 million cumulative downloads, the person writing the code is still just me. For the past few months, my desk has had two AI-assisted environments sitting side by side: Rork for spinning up new projects, and Claude on Xcode for maintaining the older native iOS apps that have been in the App Store for years.

After a month of working this way, the kinds of tasks that fit each tool — and the kinds that should not be forced into the other — have started to settle in my hands. These notes were stitched together in the margins of a notebook during a maintenance lull.

Why I kept both, instead of picking one

I went into this expecting to pick a side. Rork would let me share most code across iOS and Android. Claude on Xcode would let me consolidate everything around SwiftUI and stay close to the Apple ecosystem.

After about two weeks I realized that, for the way I actually work, keeping both running was the configuration with the least friction.

The reason is simple: building a brand new app and maintaining an app that has already been on the App Store for several years are two genuinely different jobs. Even with the same kind of AI assistance, the way you hold the tool changes depending on whose code you are touching.

Where Rork clearly fits

When I'm prototyping a new wallpaper app, Rork has a real edge.

I describe the requirements in a prompt and the project starts with Expo Router navigation, AsyncStorage for local persistence, AdMob banner and interstitial slots, and a structure already shaped for shipping to both App Store and Google Play in parallel.

For what is now roughly my thirtieth wallpaper-style app, about 80% of the structure is the same as the previous one. Rork's value to me is that it does not make me write that 80% again from scratch.

A concrete number: getting a new project from "describe the requirements" to "the build is green" used to take me about two full days. With Rork that step has been collapsing into about half a day. The AdMob mediation tuning and Crashlytics dSYM wiring still need manual work afterwards, but that's outside Rork's territory anyway.

Where I kept reaching for Claude on Xcode

For the older native iOS apps that have been live for years, Claude on Xcode is the more comfortable tool in my hand.

The reason is that the codebase mixes SwiftUI and UIKit, has a hand-rolled Coordinator pattern, and still carries a few Objective-C headers from earlier eras. Asking Rork to "regenerate" something here would be dangerous — it would risk breaking review history, store URLs, and existing in-app purchase flows.

With Claude on Xcode I can keep the file layout exactly as it is and touch just the one file I want to change. The flow that has worked best for me is: paste the actual Xcode build error into the chat, talk through the cause and the fix, then Cmd+R to verify the behavior in place.

The most memorable repair this month was the iOS 26 foreground notification change. Claude on Xcode walked me through the release notes and proposed exactly the right branch to add to my UNUserNotificationCenter delegate. I could verify it on a real device the same hour.

// The branch Claude on Xcode suggested, which I dropped straight in.
func userNotificationCenter(
  _ center: UNUserNotificationCenter,
  willPresent notification: UNNotification,
  withCompletionHandler completionHandler: @escaping (UNNotificationPresentationOptions) -> Void
) {
  if #available(iOS 26.0, *) {
    completionHandler([.banner, .list, .sound])
  } else {
    completionHandler([.alert, .sound])
  }
}

It is only a handful of lines, but this kind of "fit the existing context correctly" repair is exactly what native maintenance needs the most.

Where I draw the line, in practice

After a month, here is roughly how I split the work in my head.

  • Spinning up a new app or a high-confidence prototype → Rork
  • Maintaining and gently tuning an existing native iOS app → Claude on Xcode
  • AdMob mediation tweaks and App Store Connect chores → Claude in Chrome (separate territory)

The last one — AdMob and store consoles — is browser-driven work, so neither Rork nor Claude on Xcode is the right hand for it. Each tool has a comfortable grain size; the month mostly reminded me of that obvious fact while I was actually using them.

A few rules I gave myself to keep things calm

Carrying more than one tool tends to multiply the small daily decisions, so I gave myself just three rules.

  1. The first 30 minutes of the day are only for deciding which desk today's work belongs on.
  2. When I use both in a single day, mornings are Rork and afternoons are Claude on Xcode — split by clock, not by mood.
  3. If a build stays broken for two hours, I switch to the other side of the desk for the rest of the day.

The third one comes naturally from something I absorbed as a child from my two grandfathers, who were both temple carpenters: when your hands stop, change direction rather than push harder. Switching surfaces has, more often than not, ended up improving the finish.

What I'd like to try next

Now that the parallel routine has steadied, the next thing I want to try is bundling the output of both into a single release. Specifically, I want to take the menu-screen theme from a Rork-built new app and import it as a Swift Package into the settings screen of an older native app, so the visual tone matches across the catalog.

It's still in the early stages. I'll write up how it went, in the same matter-of-fact tone, in next month's update.

There is no single "right tool" — the operating rules sharpen quietly as you use the tools next to each other. If you happen to be trying both, I hope this is useful. Thank you for reading.

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 →

If you found this article helpful, a small tip ($1.50) would mean a lot to us. Your support helps keep this site ad-free and covers server and hosting costs.

Related Articles

◉ AI Models2026-10-05
Sonnet 5.5, GPT-6.1 Sol, or Opus 5.5? I Decide by the Kind of Fix Before I Pick the Model. A Week of Logging Where My Rork Credits Went
After Rork's model menu settled into Sonnet 5.5, GPT-6.1 Sol, and Opus 5.5, I sorted my fixes into three kinds and assigned a model and effort level to each. Here is how I read the changelog, the tiny ledger that tracks where each credit goes, and the rule I drew from a week of entries.
◉ AI Models2026-09-28
Keep Fixing in the Same Thread, or Restore and Rephrase? What I Learned Fixing One Rork Bug Both Ways
When a Rork fix request fails for the third time, do you keep going or use Restore and ask differently? I fixed the same bug both ways and compared round trips, leftover code, and where I now draw the line.
⬡ Dev Tools2026-05-18
Adapting Your Rork iOS App to iPhone Air and 17 Pro Series — Layout Patterns for 2026's New Resolutions
iPhone Air introduced a 420pt width that sits between the standard and Max models, quietly breaking layout conditionals in existing Rork apps. Based on updating four iOS apps at once, this covers device constant management, Safe Area handling, and full-screen image display fixes.