Appium is an open-source, cross-platform mobile automation tool for automating native, mobile web, and hybrid applications on iOS/Android and Windows mobile devices. Appium is cross-platform means that it allows you to write tests against multiple operating systems like Android, iOS and Windows.
Appium is a server that exposes Restful APIs. It receives connections from clients, listens for commands, executes those commands on app under test on a mobile device, and responds with an HTTP response result of the command execution.
The main components of Appium are as follows:
The main component is the server. Appium is a server written in Node.js. It can be installed using NPM( Node package manager )
Install appium using npm command
$ npm install -g appium
Starting appium server
There are client libraries written in Java, Python, PHP, JS, C# etc which support Appium extensions to the WebDriver protocol. These client libraries implement the Mobile JSON Wire Protocol. Appium client libraries add functionality or extend the standard Selenium clients, so they can still be used to run normal Selenium sessions as well.
For example, below is the java client library to interact with Appium server in java language.
There is a GUI wrapper around the Appium server that can be downloaded for Mac, Windows and Linux platforms. It comes bundled with everything required to run the Appium server.