Shopify 推出 Reflex 架构,让 AI Agent 无需模拟器即可验证原生 App 行为
Shopify 开源博客介绍了他们怎么让 AI Agent 不开模拟器就能测 iOS 和 Android 应用,1,700 多条测试 4 分钟跑完,做法细节写得很清楚。
Shopify 在 Engineering 博客发布 Reflex,这是一套为 AI 编程设计的移动应用架构,核心是把业务逻辑与界面分离,让 Agent 通过命令行直接读取状态、执行动作和验证结果。每个页面的 ViewModel 暴露统一接口,应用核心层可在 macOS 或 JVM 上直接运行,无需启动模拟器或设备。iOS 和 Android 分别用 Swift 和 Kotlin 写原生代码,但共享同一份行为测试,双端都通过才能合入。Shopify 报告超过 1,700 条行为测试在持续集成环境中双端约 4 分钟跑完,无设备运行单条测试只需几百毫秒,而同一测试在 iOS 模拟器上约需 2 秒。该方案不验证像素和按钮连接,且目前不是开源库,需要团队自行实现架构和适配层。
Shopify Reflex:让 AI 不靠模拟器,也能验证原生 App 的行为 来自 Shopify Engineering 博客,Reflex 是 Shopify 为 AI 编程设计的移动应用架构:把业务逻辑与界面分开,让 Agent 通过命令行直接读取状态、执行操作和验证结果。iOS、Android 仍分别写原生代码,但共享行为测试。 # 瓶颈从写代码变成验证 Agent 几分钟就能写出一个页面,但验证仍要启动模拟器、构建应用、模拟点击。Shopify 即使改进了模拟器工具,也碰到了速度上限。 Reflex 的思路不是继续加速点击,而是让应用本身提供一种不启动界面也能运行和检查的方式。 # 核心机制:直接操作界面背后的状态 应用核心层不依赖界面和设备,可以直接在 macOS 或 JVM 上运行。每个页面的 ViewModel(管理页面状态和操作的组件)都暴露统一接口:当前状态、可执行动作,以及子组件。 Agent 通过命令行发送动作,再读取 JSON 状态,验证业务逻辑、输入校验、导航和错误处理。它运行的是真实业务代码,而不是另一套模拟实现;网络等外部依赖则用预设数据替代,行为测试还会强制阻止真实 HTTP 请求。 关键原则是 “共享测试,而不是共享代码”:Swift 和 Kotlin 各自实现,同一份行为测试在两端运行,两边都通过才能合入。这样既保留原生实现,也用测试约束双端行为一致。 # 效果与边界 Shopify 报告,超过 1,700 条行为测试在持续集成环境中双端约 4 分钟跑完。文中示例在预热后,无设备运行只需几百毫秒,同一测试在 iOS 模拟器上约需 2 秒。 但它不验证像素,也不能证明界面按钮正确连接到了对应操作。视觉检查仍靠设计系统对照、少量截图测试和实际使用。Reflex 目前也不是可直接安装的开源库,团队需要自行实现这套架构和适配层。 Shopify Engineering @ShopifyEng We rebuilt our mobile apps in Swift and Kotlin with agents. To keep pace and hold our quality bar, we built Reflex: an agentic-first architecture that lets agents build and verify app behavior across iOS and Android without needing devices or simulators. Here's how it works, piece by piece: shopify.engineering/reflex 🔗 View Quoted Tweet 💬 0 🔄 0 ❤️ 1 👀 131 ⚡