Mobile Automation Newsletter

Issue 4

Your biweekly report of the most popular
Mobile Automation news, articles, podcasts and projects

Big Tech

How They Automate on Mobile

Since the last issue, the collection has been topped up with stories from Reddit, Pinterest, WeTransfer, Parimatch Tech and Avito

Last Week’s Blog Post

Test-only accessibility values on iOS

Accessibility values are exposed in VoiceOver and other assistive technologies. And if we want to rely on them in our tests, we have to ensure that no testing data is accessible to users. In this post, I showed you how to do this in both SwiftUI and UIKit.

Curated From The Community

WORKSPACE

iOS

Real-World Xcode Project Using Tuist

Merge conflicts in `.proj` file is one of the most painful things in iOS development. Jeroen presents an excellent way to avoid having to place Xcode project files in the source control system at all! 😍

Android

Spotless and Ktlint for your Android app

Hristijan shows how to properly install and configure Spotless and Ktlint for your Android app to clean up your Kotlin code as much as possible. Pre-commit hook comes as a nice addition.

TESTING

Cross-Platform

Set up UI tests in minutes with Maestro and Bitrise

Dima Zaytsev and Moataz Nabil held a great webinar on the Maestro testing framework, covering both the CI setup in Bitrise + Maestro Cloud and the basics of the framework itself. Check it out to find out more.

Maestro – The New Kid On The Mobile Automation Block

Talking of Maestro, Daniel Knott tried it too and even recorded a nice walkthrough on his YouTube channel. Daniel mentioned the video this week, so I think it should be a nice addition to the official webinar if you haven't seen it already.

Building a Complete E2E Pipeline for Testing Native Mobile Apps with WebdriverIO

WebdriverIO is another cross-platform testing framework that allows to interact with mobile devices via Appium driver. Amr Salem walks us through the setup process and shows how to run tests on an Android emulator in GitHub Actions.

iOS

Unit testing async/await Swift code

I've been wondering how to test async/await code on iOS and this week Antoine van der Lee shared his experience of doing exactly this. As it turns out, writing async tests is not much different from writing sync ones, but there are a few crucial concepts to be aware of.

Android

The Unit Testing Diet

In these series of articles, Stelios Frantzeskakis shares some best practices for cooking Unit tests on Android in Kotlin. I really like his approach with «Given, When, Thens». Funny enough, just a couple of weeks ago I even described how to implement something similar on iOS.

I want to run any number of Android UI tests on each PR. Your actions?

This article, written by Eugene Matsyuk, is all about the options and things that should be considered when crafting your very own UI Testing Infrastructure on Android. It's no secret that the number of UI tests tends to grow, so it's crucial to have an infrastructure that can adapt.

Flutter

Full App Widget Testing

Christian Findlay talks about widget tests and dependency injections on Flutter and how it allows to test UI behavior, simulate real-world user interactions, and achieve more comprehensive coverage.

CI/CD

iOS

Deploying beta versions of your app to TestFlight and AppCenter using Xcode Cloud

Have you ever wondered how to configure Xcode Cloud to deploy beta apps? Pol Piella covers all this and more. Fun times, even in Apple's native CI, fastlane is still the easiest and most convenient way to get some of the work done 😅
In addition, Pol shared his plans for a book on Xcode Cloud. Smash Twitter's subscribe button if you don't want to miss it.

Swift DocC: How to Host Document Archive on Web Server and GitHub Pages

Simon Ng released such an excellent tutorial on how to easily create elegant documentation for your iOS/macOS projects and publish it on a custom website or GitHub Pages.

Android

Create your own Gradle Tasks and Plugins in less than 10 minutes

Frédéric Torcheux gives us an overview of how Gradle tasks and plugins work and, more importantly, how to create custom ones for any need and possibly to share them with the world.

Mastering Gradle Dependency Management with Version Catalogs: A Comprehensive Guide

Version Catalogs offer an improved way to manage dependencies on Android and Kashif Mehmood shares really straightforward steps to integrate them into your project.



Thanks for reading!

If you like this newsletter and want to support its development, there is a way. Every thanks and coffee counts. Cheers!


🅧

No spam, ever. Your email address will never be shared and you can opt out at any time.

Updated: