Appium
What is Appium?
Appium is the most widely deployed open-source mobile test automation framework, maintained by the OpenJS Foundation. Appium 2 (released 2023) introduced a plugin architecture that separates the core from platform drivers, allowing independent versioning of iOS (XCUITest driver), Android (UIAutomator2/Espresso driver), and Flutter drivers. Appium tests can be written in any language that has a WebDriver client binding (Java, Python, JavaScript/TypeScript, Ruby, C#). This makes Appium the default choice for organisations with existing Selenium infrastructure or multi-language teams. The trade-off: Appium introduces a WebDriver protocol layer that adds latency compared to native frameworks, and debugging synchronisation issues is more complex than with Detox or XCUITest directly.
Related terms
Appium, frequently asked questions
Appium is used to write end-to-end UI tests for iOS and Android apps, both native and hybrid, using a single API. It automates user interactions (taps, swipes, text input), asserts on UI state, and can be integrated into CI/CD pipelines. Appium is particularly valuable when a team needs to test both iOS and Android with the same test codebase.
Appium 2 separates the core server from platform-specific drivers, which are now installed as plugins. This means iOS driver updates (XCUITest driver), Android driver updates (UIAutomator2), and the core can be versioned independently. Appium 2 also introduced stricter capability namespacing, all driver capabilities now require a vendor prefix (e.g., 'appium:deviceName').
For React Native apps, Detox generally produces faster, more deterministic tests because it instruments the app directly and synchronises with the JS thread. Appium is the better choice when you need to test both iOS and Android with one codebase in non-React Native apps, or when you need language flexibility across a diverse team.