The process of building an Appium test using Applitools Eyes is similar to the process of building a Selenium test. The same SDKs should be used (see installation instructions for the SDKs in each of the languages in this link).
You may find below an example of Java Android Appium test with Applitools Eyes (it works the same for iOS and can be written in other languages like Python, Ruby, .Net, etc.).
package com.applitools; import com.applitools.eyes.Eyes; import com.applitools.eyes.EyesWebDriverScreenshot; import io.appium.java_client.AppiumDriver; import org.junit.After; import org.junit.Before; import org.junit.BeforeClass; import org.junit.Test; import org.openqa.selenium.By; import org.openqa.selenium.WebDriver; import org.openqa.selenium.WebElement; import org.openqa.selenium.remote.CapabilityType; import org.openqa.selenium.remote.DesiredCapabilities; import java.io.File; import java.net.URI; import java.net.URL; import java.util.ArrayList; import java.util.List; import static org.junit.Assert.assertTrue; /** * Simple <a href="https://github.com/appium/appium">Appium</a> test which runs against a local Appium instance deployed * with the 'TestApp' iPhone project which is included in the Appium source distribution. * * @author Ross Rowe */ public class AppTest { private WebDriver driver; private List<Integer> values; private Eyes eyes; private static final int MINIMUM = 0; private static final int MAXIMUM = 10; @Before public void setUp() throws Exception { // set up appium DesiredCapabilities capabilities = new DesiredCapabilities(); capabilities.setCapability(CapabilityType.BROWSER_NAME, ""); capabilities.setCapability("platformVersion", "4.2"); capabilities.setCapability("platformName", "Android"); capabilities.setCapability("deviceName", "Android Emulator"); capabilities.setCapability("app", "http://appium.s3.amazonaws.com/NotesList.apk"); capabilities.setCapability("newCommandTimeout", 600); Eyes.setApiKey("YOUR_API_KEY"); // Can also be placed on class setup (ie, in @AfterClass) driver = new AppiumDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities); // Create the Eyes instance eyes = new Eyes(); // Let Eyes know that a test has started driver = eyes.open(driver, "YOUR APP NAME", "Appium test"); values = new ArrayList<Integer>(); } @After public void tearDown() throws Exception { // If "close" was not called, this will mark the test as aborted. eyes.abortIfNotClosed(); driver.quit(); } @Test public void testActive() throws Exception { // Visual check point eyes.checkWindow("Application home screen"); List<WebElement> textviews = driver.findElements(By.className("android.widget.TextView")); WebElement button = textviews.get(textviews.size()-1); // IMPORTANT Actually, no need for the assert.. You've already verified // all the UI elements in the screen in the call to checkWindow :) assertTrue(button.isDisplayed()); button.click(); eyes.checkWindow("New note"); // Tells Applitools that the test ended correctly eyes.close(); } }