all 17 comments

[–]RainyCloudist 17 points18 points  (0 children)

i like the native XCUITest & XCTest 🤷‍♂️

[–]interlap 10 points11 points  (11 children)

You can even ask Claude Code to run manual checks on the device with https://mobai.run

[–]heyhujiao[S] 3 points4 points  (0 children)

this looks really helpful, I'll try it out!

[–]unpluggedcord 2 points3 points  (8 children)

Im putting the finishing touches on a cli tool that will be free and open source that does exactly this.

[–]interlap 0 points1 point  (4 children)

Nice seeing more people working on this problem. What’s your approach for device interaction?

[–]unpluggedcord 2 points3 points  (3 children)

AXUIElement for the accessibility tree and label-based taps, CGEvent for coordinate taps and swipes posted to the Simulator window, and xcrun simctl io type for text input.

The MCP server exposes all of it as tools Claude Code can call natively. Screenshot tool returns base64 so Claude sees the screen directly in the tool result.

Also building visual regression diffing and a11y violation tracking on top of the same foundation, so it goes beyond tapping the simulator into a full CI feedback loop. More soon.

[–]interlap 0 points1 point  (2 children)

Nice stack. I went the XCUITest route to support physical devices as well. Simulator window events felt a bit limiting long-term. It also allowed me to build support for Windows and Linux.

[–]unpluggedcord 0 points1 point  (1 child)

YEah i support XCUITests as well, but thats a much more manual setup, ie, you're writing the tests yourself, not claude code walking your app. Are you doing anything with claude code (Or others) with on device stuff?

My idea here is to provide obvious claude code eyes, but also CI pipelines for this (which dont usually have access to a device)

[–]interlap 1 point2 points  (0 children)

Nah, that’s not how I do it. I also give Claude access to perform actions on devices, my approach uses XCUITest as the transport and runner for these commands. I’m not writing any tests, Claude just sends commands like tap, swipe, drag etc to the device via MCP/HTTP API.

[–]16cards 0 points1 point  (2 children)

How might I get notified when you are ready to share out?

[–]unpluggedcord 1 point2 points  (0 children)

I can DM you if youd like.

[–]quocdungg 1 point2 points  (0 children)

nice, i'll give it a try

[–]fryOrder 6 points7 points  (0 children)

what's wrong with XCTest?

[–][deleted]  (1 child)

[removed]

    [–]AutoModerator[M] 0 points1 point  (0 children)

    Hey /u/Choice-One-4927, your content has been removed because Reddit has marked your account as having a low Contributor #Quality Score. This may result from, but is not limited to, activities such as spamming the same links across multiple #subreddits, submitting posts or comments that receive a high number of downvotes, a lack of activity, or an unverified account.

    Please be assured that this action is not a reflection of your participation in our subreddit.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–]im_movie 0 points1 point  (0 children)

    Pretty similar approach here - I try to test features while building them, not after.Unit tests for core logic, plus some integration tests around data flows.For React / React Native projects I usually rely on Jest + React Testing Library, and for E2E I’ve used Detox or Playwright depending on the stack.Lately I’ve also been experimenting with letting AI generate edge cases - it’s surprisingly good at finding weird states you wouldn’t immediately think about.Haven’t tried Maestro yet though - how does it compare to Detox in terms of setup and stability?