TL;DR

Một tweet của @NullSecurityX đang lan nhanh trong cộng đồng iOS dev tuần này: Claude Code được cắm trực tiếp vào iOS simulator, không script, không flow định sẵn, tự khám phá toàn bộ app, bấm nút, điền form, validate end-to-end và xuất report. Công cụ đứng sau là MobAI — một desktop app cung cấp MCP server + HTTP API để AI agent nhìn và chạm vào mobile device. Kèm theo là ios-builder, CLI build iOS từ Windows/Linux qua GitHub Actions. Trên Medium, DevSphere tường thuật chi tiết: full-app sweep trung bình 8 phút.

Demo có gì khác?

Test tự động trên iOS vốn đã tồn tại 10+ năm (Appium, XCUITest, EarlGrey). Cái mới ở đây không phải "AI viết test case" — mà là bỏ hẳn test case.

Trong clip, Claude nhận được app đã build, sau đó:

  • Chụp screenshot + đọc accessibility tree của mỗi màn hình.
  • Tự suy luận flow hợp lý (đăng ký → login → feature chính → settings).
  • Gõ input hợp lệ lẫn edge-case (email rỗng, số âm, Unicode).
  • Khi gặp crash hoặc UI anomaly, pull log qua idevicesyslog, parse stack trace, đính kèm screenshot tại thời điểm lỗi.
  • Xuất một markdown report: flow nào pass, flow nào fail, bug nào mới chưa có ticket.

Tất cả không cần người viết lấy một dòng selector.

Cách hoạt động kỹ thuật

MobAI chạy ở desktop như một bridge giữa AI agent và device (simulator hoặc iPhone thật qua USB). Nó expose hai kênh:

  • MCP server — cài npx một lệnh, Claude Code / Cursor / Codex / Windsurf nhận được một bộ tool: screenshot, get_ui_elements, tap, swipe, type, read_logs.
  • HTTP API — 40+ REST endpoint, đủ dùng cho agent framework custom hoặc pipeline CI.

Vòng lặp agent là cổ điển: Sense → Decide → Act → Learn. Đầu vào mỗi step là ảnh màn hình + cây accessibility; đầu ra là một action. Claude suy luận ngữ nghĩa UI — nút "Submit" đổi thành "Continue" không làm vỡ test, vì model hiểu chức năng chứ không bám selector.

Song song, ios-builder giải bài toán Mac-less: đẩy source lên GitHub Actions macOS runner, build ra IPA (native Swift, React Native, Expo ejected, Flutter, Cordova), rồi kéo về máy Windows/Linux để MobAI push vào device. Đây là mảnh ghép then chốt cho solo indie dev không có Mac vẫn ship được iOS E2E test.

Toàn bộ device driving diễn ra local — screenshot, UI tree, tap event không đi qua cloud của MobAI. Chỉ dữ liệu gửi lên model (Claude) là ra ngoài.

Vì sao nó quan trọng?

Test E2E mobile là ngành công nghiệp tỷ đô nhưng đau khổ nhất trong QA: test case brittle, selector đổi là vỡ, flow dài đến vài trăm step, mỗi lần UI redesign là viết lại.

Cách tiếp cận "agent không script" lật ngược mô hình: thay vì bảo máy làm chính xác X, Y, Z, bạn bảo nó kiểm tra xem app có làm được X, Y, Z không. Chi phí viết test giảm về zero; chi phí maintain giảm về zero. Đổi lại là token cost mỗi lần chạy và tính non-deterministic — agent có thể đi đường khác giữa hai lần.

So với Appium / QA.tech / DroidAgent

DimensionMobAI + ClaudeAppium / XCUITestQA.tech / Momentic
Cần viết scriptKhôngCó, chi tiếtNatural language
Bền với đổi UICao (hiểu ngữ nghĩa)Vỡ khi đổi selectorKhá
Chạy iOS trên Windows/LinuxCó (qua ios-builder)KhôngCloud-only
ModelClaude, Codex, Cursor, WindsurfN/AProprietary
Giá$0 – $9.99/thángFree OSS + infraSaaS liên hệ

Tiền lệ học thuật: DroidAgent (CoinSE) đã làm multi-LLM GUI testing cho Android từ 2024. MobAI là bản product-ized cho iOS và cho phép dùng bất kỳ host model nào.

Use case thực tế

  • Smoke test trên PR — agent login, đi 5–10 flow critical, đính report vào PR trước khi merge.
  • Indie dev không có Mac — Windows + ios-builder + MobAI, E2E chạy full trên iPhone thật qua USB.
  • Exploratory fuzzing — agent nhồi input bậy, tìm crash chưa biết, parse Console.app.
  • Localization + screenshot — chạy qua tất cả locale, chụp store screenshot chuẩn.
  • Accessibility audit — agent đã walk accessibility tree, báo luôn element nào thiếu label.

Limitations & pricing

Gói giá: Free (1 device, 100 API call/ngày), Plus $4.99/tháng (unlimited call, sequential run), Pro $9.99/tháng hoặc $99/năm (unlimited device, parallel test, 7 ngày offline).

Hạn chế cần cân nhắc:

  • Non-deterministic — hai lần chạy có thể đi path khác, khó so diff ổn định.
  • Token cost tăng theo số màn hình — app to có thể tốn $1–$3 mỗi sweep full.
  • Visual bug phụ thuộc model vision, vẫn sót layout tinh tế.
  • iOS build vẫn cần macOS runner (GitHub Actions) — ios-builder offload chứ không xoá.
  • Device thật cần certificate + provisioning profile hợp lệ.

What's next

Hướng phát triển nhìn thấy rõ: tích hợp sâu accessibility API iOS 18/26, record-replay bằng video, xuất JUnit XML cho CI, và Android feature parity đang rollout. Dài hạn, nếu cost-per-run đủ rẻ và model đủ bền, mô hình "QA agent chạy trước mỗi deploy" sẽ thay thế phần lớn regression test viết tay — đặc biệt cho team indie và startup sớm.

Nguồn: @NullSecurityX, mobai.run, MobAI-App/ios-builder, DevSphere (Medium).