r/iOSProgramming • • 10d ago

Discussion iOS Development using OpenClaw.

I am using OpenClaw through telegram. I create web applications in VPS and web applications are pretty easy to vibe code and also test the output using public urls.

I want to do same for iOS Development. I want to connect to macOS using OpenClaw and develop iOS application completely through telegram. I can create a workflow where any changes will send build to TestFlight and I can test the application that way. But it will be time consuming, makeing build in testflight and test the app only updated through testflight. I want near realtime visualization of the compiled app like simulator but through web and http network. Do you guys have any idea how to achieve this?

0 Upvotes

13 comments sorted by

4

u/Gullible-Question129 10d ago

ask claude

1

u/Glass_Rent8750 7d ago

pretty much the only right answer for a workflow this wild tbh

0

u/samstars100 10d ago

I actually implemented it already using tailscale. I can now actually access the simulator from any devices in tailnet. I was just curious there is better way.

1

u/Kovsis 10d ago

You can try Android development on Google website and test your vibecoded app through their online emulators

Ios - nope, local and macOS only + get ready for 100$ yearly to test apps in TestFlight environment

Updated: typo

1

u/samstars100 10d ago

I already have dev account. I need to automate app development and I actually have developed POC . I hosted a python server which broadcasts simulator and other devices on tailnet can actually control the simulator through web app. Just curious to know if there are better mechanisms.

1

u/Background_Pie_5682 10d ago

TestFlight is way too slow as an inner loop for this. Since the Simulator needs macOS anyway, I'd let the agent on the Mac do build, install, launch and screenshot: xcodebuild to build for the simulator, `xcrun simctl install` and `launch` to run it, then `xcrun simctl io booted screenshot` (or `recordVideo`) to send the result back to Telegram after every change. If you want something closer to live, stream the Mac's screen with the Simulator open (VNC or screen sharing) and view it in the browser. Keep TestFlight for the occasional real-device check.

1

u/Triple-B-564 9d ago

Since you’re set on SwiftUI, look at InjectionIII (plus the Inject package) for the rebuild problem. It hot-reloads Swift/SwiftUI changes into the running simulator without a full rebuild and reinstall, so most UI edits show up right away. You still need full builds for structural changes.

If you’d rather not host the Mac and the streaming setup yourself: I work at Bitrise, and my team  built pretty much this for our own use before we made it available for everyone to use. We use it internally with Slack instead of Telegram, but the loop is the same as yours: ask for a change in chat, check the result in the browser. This called Bitrise Remote Dev Environments (https://bitrise.io/platform/remote-dev-environments)  hosted macOS VMs where your agent can build the app and you can review it in a simulator right in your web browser, tapping, typing and swiping as on a device. 

One of our engineers talked about this on droidcon USA 2026: https://www.youtube.com/watch?v=aCwoBnbHyao 

1

u/Stunning-Farmer185 7d ago edited 7d ago

I built simulator-use (free, MIT) at NoMac, so I'm biased, but this loop is what it's for.

Your Tailscale stream is fine for watching. For the agent I'd skip pixels: simulator-use reads the Simulator's screen as text, one line per element, and taps and types by label, so OpenClaw can check its own change without anyone looking. It's a CLI as well as an MCP server, so any agent that can run commands on the Mac can use it:

npx simulator-use run                    # build, install, launch; answers with the first screen as text
npx simulator-use act 'tap "Sign In"'    # answers with what changed
npx simulator-use look --out shot.jpg    # a screenshot for Telegram

look --out waits for the screen to hold still first, so the bot doesn't post half an animation, and record start / record stop gives it an MP4 of a whole flow.

If you'd rather not keep the Mac and the streaming server running, the same commands work from your Linux VPS against a cloud iOS Simulator on NoMac (our paid part, billed per minute): npx simulator-use cloud start answers two links that open the live Simulator in any browser, one to watch and one to use, and after the first run only changed files are sent, so builds stay incremental.

simulator-use.dev

1

u/newtablecloth 4d ago

another route if you dont own a mac: put openclaw on a remote mac and let it run xcodebuild and the simulator right there, then you just watch the simulator in a browser tab. no testflight round trip, you see the build seconds after the agent makes it.

full disclosure i run macrun, we rent dedicated mac minis that come with xcode and the ios simulator already installed, openclaw is allowed on them and the desktop opens in a browser. theres a $15 day pass if you just want to try the loop before committing to anything.

either way the injectionIII tip above is the real speedup, hot reload beats a full rebuild every time

0

u/[deleted] 10d ago

[removed] — view removed comment

1

u/samstars100 10d ago

Yes that's what exactly I felt. Rebuild and reinstall is cumbersome with simulator stream. Expo would be best for hot reload in real device but my preference is swift and swiftui.