{"id":50837789,"url":"https://github.com/webdriverio/setup-workshop-mobile-automation-with-appium","last_synced_at":"2026-06-14T05:04:21.318Z","repository":{"id":355971234,"uuid":"1201782452","full_name":"webdriverio/setup-workshop-mobile-automation-with-appium","owner":"webdriverio","description":null,"archived":false,"fork":false,"pushed_at":"2026-04-06T05:22:29.000Z","size":21,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-05-06T04:48:54.419Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"JavaScript","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/webdriverio.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,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null},"funding":{"tidelift":"npm/webdriverio","open_collective":"webdriverio"}},"created_at":"2026-04-05T06:32:28.000Z","updated_at":"2026-04-07T23:01:43.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/webdriverio/setup-workshop-mobile-automation-with-appium","commit_stats":null,"previous_names":["webdriverio/setup-workshop-mobile-automation-with-appium"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/webdriverio/setup-workshop-mobile-automation-with-appium","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fsetup-workshop-mobile-automation-with-appium","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fsetup-workshop-mobile-automation-with-appium/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fsetup-workshop-mobile-automation-with-appium/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fsetup-workshop-mobile-automation-with-appium/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/webdriverio","download_url":"https://codeload.github.com/webdriverio/setup-workshop-mobile-automation-with-appium/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/webdriverio%2Fsetup-workshop-mobile-automation-with-appium/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":34309671,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-06-14T02:00:07.365Z","response_time":62,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"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":[],"created_at":"2026-06-14T05:04:19.458Z","updated_at":"2026-06-14T05:04:21.312Z","avatar_url":"https://github.com/webdriverio.png","language":"JavaScript","funding_links":["https://tidelift.com/funding/github/npm/webdriverio","https://opencollective.com/webdriverio"],"categories":[],"sub_categories":[],"readme":"# Workshop Setup, Making Sense of Mobile Automation with Appium and WebdriverIO\n\nBefore the workshop starts, make sure your machine is set up correctly. Depending on your download speed this takes **30-60 minutes**, so do this **before you arrive**.\n\n\u003e [!IMPORTANT]\n\u003e The workshop is packed and we don't have time to troubleshoot installation issues on the day itself. Please make sure everything is set up and the check script passes **before you arrive**. If you get stuck, reach out in advance so we can help.\n\n\u003e [!NOTE]\n\u003e **Appium is not part of this setup guide.** During the workshop we pull in the Appium server, drivers, and Appium Inspector together as project dependencies. You do not need to install Appium now.\n\n---\n\n## Requirements\n\nMake sure your machine meets these minimum versions before starting. If something is missing or too old, the steps below walk you through installing or updating it.\n\n| Tool | Minimum version | How to check |\n|---|---|---|\n| **Git** | 2.x | `git --version` |\n| **Node.js** | 22+ (even versions only: 22, 24, ...) | `node --version` |\n| **Visual Studio Code** | Latest | `code --version` |\n| **Android Studio** | Panda | Android Studio → About |\n| **Android SDK** | API 35 (Android 15) or higher | Android Studio → SDK Manager |\n| **Xcode** *(macOS only)* | 26.4 | `xcodebuild -version` |\n| **iOS Simulator** *(macOS only)* | iOS 26.2 or higher | Xcode → Settings → Platforms |\n\n---\n\n## What you'll install\n\n| Tool | Why we need it |\n|---|---|\n| **Git** | To clone this repository and run the check script |\n| **Node.js** (via NVM) | WebdriverIO runs on Node.js |\n| **Visual Studio Code** | The editor we use to write and run tests |\n| **Android Studio** | Gives us the Android SDK and the emulator |\n| **Xcode** *(macOS only)* | Gives us the iOS Simulator |\n\n---\n\n## 1. Git\n\nGit is used to clone this repository to your machine.\n\nSee [docs/git.md](docs/git.md) for full instructions.\n\n**Quick check:** open a terminal and run:\n\n```bash\ngit --version\n```\n\nIf you see a version number (e.g. `git version 2.x.x`), you're good. If not, follow the guide above.\n\n---\n\n## 2. Clone This Repository\n\nClone this repository to your machine so you can run the setup check script.\n\nOpen a terminal and run:\n\n```bash\ngit clone https://github.com/webdriverio/setup-workshop-mobile-automation-with-appium.git\ncd setup-workshop-mobile-automation-with-appium\n```\n\n---\n\n## 3. Node.js via NVM\n\nNVM (Node Version Manager) installs and manages Node.js for you. It avoids permission issues and makes switching versions easy later.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003emacOS\u003c/strong\u003e\u003c/summary\u003e\n\nSee [docs/nvm-mac.md](docs/nvm-mac.md) for full instructions.\n\n**Quick steps:**\n\n```bash\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash\n```\n\nClose your terminal completely and open a new one, then:\n\n```bash\nnvm install --lts\nnvm use --lts\nnode --version   # should print v22.x.x or v24.x.x\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eLinux\u003c/strong\u003e\u003c/summary\u003e\n\nSee [docs/nvm-linux.md](docs/nvm-linux.md) for full instructions.\n\n**Quick steps:**\n\n```bash\ncurl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash\n```\n\nClose your terminal completely and open a new one, then:\n\n```bash\nnvm install --lts\nnvm use --lts\nnode --version   # should print v22.x.x or v24.x.x\n```\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eWindows\u003c/strong\u003e\u003c/summary\u003e\n\nSee [docs/nvm-windows.md](docs/nvm-windows.md) for full instructions, including alternatives via **winget** and **Chocolatey**.\n\nOn Windows we use **nvm-windows**. Pick whichever installation method suits you:\n\n**Option A, installer:**\n\n1. Download `nvm-setup.exe` from the [nvm-windows releases page](https://github.com/coreybutler/nvm-windows/releases/latest).\n2. Run it and keep all default options.\n\n**Option B, winget:**\n\n```powershell\nwinget install CoreyButler.NVMforWindows\n```\n\n**Option C, Chocolatey:**\n\n```powershell\nchoco install nvm\n```\n\nAfter installing with any of the options above, open a **new** PowerShell window and run:\n\n```powershell\nnvm install lts\nnvm use lts\nnode --version   # should print v22.x.x or v24.x.x\n```\n\n\u003c/details\u003e\n\n---\n\n## 4. Visual Studio Code\n\nVS Code is the editor we use to write and run our tests during the workshop.\n\nSee [docs/vscode.md](docs/vscode.md) for full instructions including recommended extensions.\n\n**Quick steps:**\n\n1. Download from [https://code.visualstudio.com](https://code.visualstudio.com) and install.\n2. Open a **new** terminal and verify:\n   ```bash\n   code --version\n   ```\n   If it says `command not found`, the check script (step 7) can fix this for you.\n\n---\n\n## 5. Android Studio + Android Emulator\n\nAndroid Studio gives us the Android SDK and lets us run a virtual phone (emulator) on your computer.\n\nSee [docs/android-studio.md](docs/android-studio.md) for full instructions.\n\n**Quick steps:**\n\n1. Download Android Studio from [https://developer.android.com/studio](https://developer.android.com/studio) and install.\n2. Run the Setup Wizard inside Android Studio, choose **Standard**.\n3. Set `ANDROID_HOME` and add `platform-tools` + `emulator` to your `PATH` (the check script can do this for you automatically).\n4. Open **Device Manager**, create a **Pixel 9** device with **API 36**, and start it.\n5. Confirm with:\n   ```bash\n   adb devices\n   # List of devices attached\n   # emulator-5554   device\n   ```\n\n**Starting an emulator from the terminal:**\n\n```bash\nemulator -avd Pixel_9_API_36\n```\n\nOr use [`start-android-emulator`](https://github.com/wswebcreation/start-android-emulator) for an interactive picker:\n\n```bash\nnpx start-android-emulator\n```\n\n---\n\n## 6. Xcode + iOS Simulator *(macOS only)*\n\niOS automation requires Xcode, which is only available on macOS. If you're on Windows or Linux you'll focus on Android during the iOS parts of the workshop.\n\nSee [docs/xcode-ios.md](docs/xcode-ios.md) for full instructions.\n\n**Quick steps:**\n\n1. Install **Xcode** from the App Store (≈ 15 GB, download in advance!).\n2. Accept the licence: `sudo xcodebuild -license accept`\n3. Install platform tools: `xcodebuild -runFirstLaunch`\n4. Open **Xcode → Settings → Platforms** and make sure an iOS runtime is installed.\n5. Start a simulator from the terminal:\n   ```bash\n   xcrun simctl boot \"iPhone 17 Pro\"\n   open -a Simulator\n   ```\n\n---\n\n## 7. Verify Your Setup\n\nFrom inside the cloned folder, run:\n\n```bash\nnpm install\nnpm run check\n```\n\nThe script checks each tool and tells you exactly what is working and what isn't. It can also fix some things automatically when it prompts you with `[y/N]`.\n\nFix anything marked with ✘ before the workshop. Warnings (⚠) are fine to leave.\n\n**Example of a passing check:**\n\n```\nGit\n  ✔  git version 2.47.1\n\nNode.js\n  ✔  node v22.14.0\n  ✔  npm 10.9.2\n\nVisual Studio Code\n  ✔  Visual Studio Code 1.99.0\n\nAndroid\n  ✔  ANDROID_HOME = /Users/you/Library/Android/sdk\n  ✔  adb, Android Debug Bridge version 1.0.41\n  ✔  Android emulator found. Available AVDs:\n       Pixel_9_API_36\n  ⚠  No running Android devices or emulators (fine before the workshop)\n\nJava\n  ✔  JAVA_HOME = /Applications/Android Studio.app/Contents/jbr/Contents/Home\n\niOS (macOS only)\n  ✔  Xcode, /Applications/Xcode.app/Contents/Developer\n  ✔  xcodebuild, Xcode 26.4\n  ⚠  No iOS Simulator currently running (fine before the workshop)\n\nAppium\n     Running appium driver doctor uiautomator2 (this may take a moment)...\n  ✔  appium driver doctor uiautomator2: 0 required fixes needed\n     Running appium driver doctor xcuitest (this may take a moment)...\n  ✔  appium driver doctor xcuitest: 0 required fixes needed\n\n──────────────────────────────────────────────────\n\nAll checks passed! Your machine is ready for the workshop.\n```\n\n---\n\n## Troubleshooting\n\nIf you get stuck, each guide in the [docs/](docs/) folder has a troubleshooting section at the bottom.\n\n| Problem | Where to look |\n|---|---|\n| Git not found | [docs/git.md](docs/git.md) |\n| `nvm` not found after install | [docs/nvm-mac.md](docs/nvm-mac.md) / [docs/nvm-linux.md](docs/nvm-linux.md) / [docs/nvm-windows.md](docs/nvm-windows.md) |\n| `code` command not working | [docs/vscode.md](docs/vscode.md) |\n| `adb` not found | [docs/android-studio.md](docs/android-studio.md) |\n| Emulator won't start | [docs/android-studio.md](docs/android-studio.md) |\n| Xcode issues | [docs/xcode-ios.md](docs/xcode-ios.md) |\n\nStill stuck? Reach out before the workshop so we can sort it out in advance.\n\n---\n\n## What we install during the workshop\n\nYou do **not** need to install any of the following ahead of time:\n\n- Appium server\n- Appium drivers (`uiautomator2` for Android, `xcuitest` for iOS)\n- Appium Inspector\n- The workshop project itself and its dependencies\n\nWe pull all of these in together during the workshop as project dependencies.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fsetup-workshop-mobile-automation-with-appium","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fwebdriverio%2Fsetup-workshop-mobile-automation-with-appium","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fwebdriverio%2Fsetup-workshop-mobile-automation-with-appium/lists"}