When you’re designing an automation suite for native applications, what are your preferences for the language to use to build the framework? And why would that be your preference?
I’m going with Appium and driving it from Python as a dependency. It’s a pain for Apple since you have to hang your iPhone off of a REAL mac, and the apple toolchain+security hoops to get the webdriver/automationdriver built, signed and provisioned makes it a brittle system though.
Appium and Android is just dead easy to use, and it’s possible to get away with some duplication of code for the platforms.
I have a chance to review this on account the Apple pain, each time a OS or toolchain update breaks my environment, so keen to hear what people suggest. Keen to look at a cloud host if only it was not for the cost, but want to keep the door open to going into a mobile cloud.
Native apps, so I’ll use native solutions.
Java/Kotlin + Espresso for Android
Swift + XCUITest/EarlGrey for iOS
Simple, fast, quick to start and the most stable stack that I’ve ever worked with.
Longer answer requires more questions and more answers about the project
By way of example, last week I updated my IOS device to 14.2
This promptly broke xcode which refused to talk to the target without updating xcode first. It’s this kind of cost that makes a single test codebase a necessity. Almost every aspect of the native apps is identical, so we have 90% of our test cases just run on both targets and handle logging using test framework specialisations for example. Would love to see test frameworks that convert Java Tests to something that builds and runs on both platforms for example.