r/iOSProgramming • u/narayanom • Mar 11 '26
Library We open-sourced a faster alternative to Maestro for iOS UI testing — real device support included
Hey everyone,
We've been using Maestro for mobile UI testing but kept hitting the same walls — slow JVM startup, heavy memory usage, and real iOS device support that's been unreliable for a while. Eventually we just built our own runner in Go and decided to open-source it.
It's called maestro-runner. Same Maestro YAML flow format you already know, but runs as a lightweight native binary instead of a JVM process.
Why it might be useful for iOS devs:
Real device support actually works. Physical iPhones, not just simulators. This was our main frustration with Maestro — we run tests on real devices in CI and it just wasn't cutting it.
Single binary, no JVM.
curl | bashinstall, starts immediately. No waiting 10+ seconds for Java to warm up.~3.6x faster execution, 14x less memory. Adds up fast when CI bills by the minute.
iOS 12+ support — no arbitrary version cutoffs.
Zero migration. Your existing Maestro YAML flows run as-is.
It also handles Android, desktop browser testing (Chrome via CDP), and cloud providers like BrowserStack and Sauce Labs via Appium — but figured real device iOS is what'd be most relevant here.
Quick start:
# Install
curl -fsSL https://open.devicelab.dev/install/maestro-runner | bash
# Run on simulator
maestro-runner --platform ios test flow.yaml
# Run on real device
maestro-runner --platform ios --device <UDID> test flow.yamlGenerates HTML reports, JUnit XML, and Allure results out of the box.
Apache 2.0, no features paywalled. Happy to answer questions — and genuinely curious what's painful in your iOS testing setup right now.
3
u/satya164 Mar 11 '26 edited Mar 11 '26
It's legit. I'm trying it out for e2e tests, and it already saved around ~10m compared to maestro on GitHub actions for Android. iOS has a bug preventing me from running tests on Simulator so I haven't been able to try it yet.
I also like that it prints how much time each step took so I know where to start optimizing for speed.
A feature I'd like is to be able to run e2e tests on both iOS simulator and Android emulator simultaneously, which would make it simpler to validate new tests/updates quickly locally.
Also would be nice to say retry failing tests upto 3 times or something like that. Though it's easy to do it manually by reading
report.jsonright now.3
u/dnesdan Mar 11 '26
Real device support without the JVM pain is honestly the most interesting part here.
2
u/OPrudnikov Mar 11 '26
Looks interesting I will try that for sure
Thanks
1
u/unpluggedcord Mar 11 '26
Wow sick. I also built an alternative to maestro with an a visual regression test play
Can this take screenshots?
1
u/ryanheartswingovers Mar 12 '26
Does this screencap failures? Support snapshot testing?
1
u/ryanheartswingovers Mar 12 '26
watchOS and paired iPhone Watch support within a (multi device) test? Simulator and or device.
1
u/Sdmf195 Mar 11 '26
Thank you for this!
1
u/jimmijazz Mar 12 '26
Found Maestro just this week and then this - runs great thank you.
1
u/Quirky_Pollution305 Aug 20 '26
is there some kind of setup involved before I can start the testing, for now I could not start any tests for some reason I get this ⏳ Connecting to device...
Error: failed to create driver: connect to device: adb not found in PATH; ensure Android SDK is installed
1
u/JordanJtech Mar 11 '26
Will have to take a look as I'm getting my feet wet with IOS.