{"id":17225158,"url":"https://github.com/zoonooz/appium-kotlin-example","last_synced_at":"2025-04-14T00:51:57.367Z","repository":{"id":50559146,"uuid":"111992851","full_name":"zoonooz/appium-kotlin-example","owner":"zoonooz","description":null,"archived":false,"fork":false,"pushed_at":"2017-11-25T10:10:24.000Z","size":58,"stargazers_count":29,"open_issues_count":0,"forks_count":9,"subscribers_count":2,"default_branch":"master","last_synced_at":"2025-03-27T14:55:15.840Z","etag":null,"topics":["appium"],"latest_commit_sha":null,"homepage":null,"language":"Kotlin","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/zoonooz.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2017-11-25T09:46:06.000Z","updated_at":"2025-01-07T09:21:57.000Z","dependencies_parsed_at":"2022-08-06T09:00:37.044Z","dependency_job_id":null,"html_url":"https://github.com/zoonooz/appium-kotlin-example","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoonooz%2Fappium-kotlin-example","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoonooz%2Fappium-kotlin-example/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoonooz%2Fappium-kotlin-example/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/zoonooz%2Fappium-kotlin-example/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/zoonooz","download_url":"https://codeload.github.com/zoonooz/appium-kotlin-example/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":248804783,"owners_count":21164131,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["appium"],"created_at":"2024-10-15T04:12:52.617Z","updated_at":"2025-04-14T00:51:57.340Z","avatar_url":"https://github.com/zoonooz.png","language":"Kotlin","funding_links":[],"categories":[],"sub_categories":[],"readme":"Using Appium with Kotlin\n========================\n\nThis project is the example of how to setup Appium with Kotlin to test your app in both iOS and Android.\n\n## Running the test\n\n### Install Appium Server\nInstall Appium server using node.js\n```\nnpm install -g appium\n```\nor download the Application from https://bitbucket.org/appium/appium.app/downloads/\n\nthen start the server.\n\n### Android setup\nAppium will use the first device that connected to ADB so please check `adb devices` and make sure that at lease one device is connected.\n\nFor more information https://github.com/appium/appium/blob/master/docs/en/drivers/android-uiautomator2.md\n\n### iOS setup\nIf you see some permission error, you might need to use `authorize-ios` before running the test in simulator.\n\n```\nnpm install -g authorize-ios\nsudo authorize-ios\n```\n\nAppium will use device name in the capabilites to find simulator.\nUse the following command to find all available names.\n```\nxcrun simctl list devices\n```\n\nFor more information https://github.com/appium/appium/blob/master/docs/en/drivers/ios-xcuitest.md\n\n### Run the test\nStart appium server then use the test task like normal gradle project. You also can specify the platform you want to test (`ANDROID` or `IOS`)\n```\n./gradlew test -Pplatform=ANDROID\n```\n\n## Writing the test\n\n### Finding the element ID\nIf you are using Appium desktop app, it comes with the inspector tool that you can use to find element reference such as XPath or ID. \n\nAndroid has the tool that you can use to find element informations as well.\n```\n{ANDROID_SDK}/tools/uiautomatorviewer\n```\n\n### PageObject Pattern\nPage Object is a Design Pattern which has become popular in test automation for enhancing test maintenance and reducing code duplication. I recommend you to read and understand how to design the test before start writing.\n\n- https://martinfowler.com/bliki/PageObject.html\n- https://github.com/SeleniumHQ/selenium/wiki/PageObjects","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoonooz%2Fappium-kotlin-example","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzoonooz%2Fappium-kotlin-example","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzoonooz%2Fappium-kotlin-example/lists"}