Appium is an “HTTP Server” written using Node.js platform and drives iOS and Android session using Webdriver JSON wire protocol. Hence, before initializing the Appium Server, Node.js must be pre-installed on the system
When Appium is downloaded and installed, then a server is set up on a machine that exposes a REST API.
It receives connection and command request from the client and executes that command on mobile devices (Android / iOS)
It responds back with HTTP responses. Again, to execute this request, it uses the mobile test automation frameworks to drive the user interface of the apps.
Apple Instruments for iOS (Instruments are available only in Xcode 3.0 or later with OS X v10.5 and later).
Google UIAutomator for Android API level 16 or higher
Selendroid for Android API level 15 or less