Building iOS apps from the cloud: Claude Code and Revyl

by Marcello Gonzatto Birkan, Founder

In the previous post I showed a small Coloreku fix that was written, built and tested on an iPhone without my Mac even being on. It was a proof of concept. This time I wanted to see what happens when that becomes the normal way to work, so I spent a whole night building two iOS apps from the cloud alone: between 11 p.m. and 7 a.m., 19 PRs were merged, and Xcode stayed closed the whole time.

Timeline of the night of 23 to 24 September, 11 p.m. to 7 a.m.: 24 PRs as horizontal bars, from each session's start to its merge. Weightics cloud sessions are black, Coloreku ones gold, and Mac sessions hatched. The longest bars, between 70 and 98 minutes, are whole features; around 4 a.m., five sessions start within ten minutes, several of them fixes that took 4 to 10 minutes.

The stack

The first piece is Claude Code's cloud sessions. Each task becomes a session in an Anthropic Linux container, with the repository cloned and the agent working on its own. I open one from the desktop app, from my phone or from a Claude Projects thread, describe what I want and go do something else. The session reads the code, writes the Swift, opens the PR, watches CI and resolves conflicts when another session touched the same file. Each one runs in isolation, so several can run at once, and at the peak of the night there were four.

A Linux container has no Xcode and no simulator, though, and that is where Revyl comes in. Its CLI sends the code to a macOS runner with Xcode 26.5, builds the .app and brings up a simulated iPhone in the cloud that the agent itself drives. The agent installs the app, launches it, taps, swipes and takes screenshots, and the screenshots come back into the conversation as proof.

Everything ends in a GitHub PR, with a verification section in which the session reports what built, what it saw on the simulator and what it left out.

How a task moves

  1. I send one sentence, something like "bring back the photo carousel on the welcome screen".
  2. The session reads CLAUDE.md, which has a section just for the cloud: if CLAUDE_CODE_REMOTE is set, the path is Revyl; on the Mac, it is the usual Xcode.
  3. It writes the code and runs revyl build --platform ios --remote. The first Weightics build took 2m40s.
  4. It starts the device, walks the screen and takes the photos. On the carousel, two photos taken seconds apart show the pictures moving; with Reduce Motion on, both come out identical, which was exactly the ask.
  5. It stops the device, opens the PR and keeps an eye on it until the merge.

What came out of one night

Weightics got a Premium plan with an annual subscription and a trial, parity with Happy Scale (goals, milestones, an editable logbook, CSV import), a medication mode for people on GLP-1, weekly, monthly and yearly reports, body composition typed in by hand, and a cleanup of roughly 4,000 lines as the Bluetooth scale went away. Coloreku got a new mode in the style of LinkedIn's Queens, with a solver that grades each board by the technique it demands and 80 levels across 8 chapters. Between features I kept sending fixes that took 4 to 6 minutes while the bigger sessions were still running.

Where the Mac still comes in

The Mac is still part of this. The cloud simulator taps more slowly than a real device, the remote build is Debug, and the full test suite running on the Mac caught a bug that had slipped through the cloud that same night. So the split today is this: the cloud produces and proves each change, and the Mac has the final word before a version goes to the store.

Signing is off both of their plates. I set up Xcode Cloud once, on the Mac, and now an approved PR is enough for it to produce the signed build for TestFlight and the App Store.

The bulk of the work, the part that used to keep me in front of Xcode, now happens while I do something else. If you have an iOS app waiting for someone to find the time, tell me about it.

More articles

iOS development with my Mac switched off

I sent a task by message and the app came back written, built, installed on a cloud iPhone, photographed and with a PR open. The whole loop inside a thread: what works, what it costs, and what it still cannot do.

Read more

What’s coming to this blog

Project stories, engineering notes, and the reasoning behind how we work. The first ones are on the way.

Read more

Tell us about your project

Where we are

  • São Paulo
    São Paulo, SP
    Brazil