Appium philosophy and it’s architecture

Appium is an open-source tool for automating native, mobile web, and hybrid applications on various mobile platforms like iOS and AndroidOS and firefoxOS.


  1. You shouldn’t have to recompile your app or modify it in any way in order to automate it.
  2. You shouldn’t be locked into a specific language or framework to write and run your tests.
  3. A mobile automation framework shouldn’t reinvent the wheel when it comes to automation APIs.
  4. A mobile automation framework should be open source, in spirit and practice as well as in name!

Philosophy #1

Test the same app you are shipping (no need to recompile or customize the app to test)

different vendors provide different frameworks to achieve this

iOS app : UIAutomation

AndroidOS 4.2+ : UiAutomator

Android earlier versions : Selendroid

WindowsOS app : WinAppDriver

FirefoxOS app : Marionette driver

Philosophy #2

Appium supports multiple languages by using WebDriver API which specifies a client server protocol (JSON wire protocol), a client written in any language can be used to send the appropriate HTTP requests to the server.

Appium supports all languages that selenium webDriver supports.

Philosophy #3

Appium added certain extra API methods on top of selenium WebDriver for mobile automation, did n’t recreate the automation libraries from scratch.

Philosophy #4

Appium is open source. (can download and use without license).

We can write our test code in any language (for each language there are client libraries), client libraries send requests over HTTP JSON wire protocol to appium server.

Appium server receives connection from a client, listens for requests and execute them on mobile devices, in turn sends back responses as a result of command executions.

Appium server written in Node.js.

Appium.exe (for windows OS), (For other than windows OS) are GUI wrappers which enables to run appium server.

For appium setup windows, please refer next post.

Download link for client and appium server –

Appium downloads

Document reference –

Appium introduction


Content posted is based on learning or working experience,
Share the post with others if find useful,
Any queries?, leave comments or discuss on our, Thanks!

Leave a Reply

Your email address will not be published. Required fields are marked *