Mohsen Mirhoseini

Senior Android Developer & Team/Tech Lead

Why Developers Should Own Their Tests — A Conversation with Vitaly Sharovatov from Qase

Why & How Developers Should Test Applications

Testing is often seen as a secondary concern — something to be handled by QA after the “real work” of development is done. But what if we turned that mindset around? What if developers themselves owned the testing process from the start?

In a recent interview, I had the pleasure of sitting down with Vitaly Sharovatov, Engineering Manager at Qase, to talk about why developers should take testing more seriously — and how tools like Qase (a modern Test Management System) can help streamline that process.

(more…)

The must-have Android Studio plugins

It is crucial to keep in mind that sharing information about the tools we use to simplify our daily lives as a developer is a valuable way to contribute to the Android community. We should aim to make the development process easier for ourselves and others.

(more…)

DevFest is in the air! (DevFest Berlin 2023)

DevFest is a global event organized by Google Developer Groups (GDGs) in various regions and countries worldwide. As per the Google for Developers website, over 500 GDGs will host DevFest events in 2023, covering a range of topics including AI, Android, Cloud, Data, DevOps, Flutter, Go, Kotlin, Firebase, and more. To find a DevFest event near you, simply visit the DevFest website and search by location or date.

(more…)

Maestro, Android Modern UI Testing

Maestro is the simplest and most effective mobile UI testing framework. Maestro is built on learnings from its predecessors (Appium, Espresso, UIAutomator, XCTest) and allows you to easily define and test your Flows.

  • Built-in tolerance to flakiness. UI elements will not always be where you expect them, screen tap will not always go through, etc. Maestro embraces the instability of mobile applications and devices and tries to counter it.
  • Built-in tolerance to delays. No need to pepper your tests with sleep() calls. Maestro knows that it might take time to load the content (i.e. over the network) and automatically waits for it (but no longer than required).
  • Blazingly fast iteration. Tests are interpreted, no need to compile anything. Maestro is able to continuously monitor your test files and rerun them as they change.
  • Declarative yet powerful syntax. Define your tests in a yaml file.
  • Simple setup. Maestro is a single binary that works anywhere.

 In this video, I’ve asked Zhanibek Marshal to join me and share his experience using this framework.



Hope you enjoy and do not forget to follow me on Medium and YouTube to get notified when there is a new topic.

How to make and use BOM (Bill of Materials) dependencies in Android projects

You’ve probably come across the BOM term if you’ve worked with big libraries like Jetpack Compose or Firebase. But what exactly is a BOM dependency? Why is it important? And how can we create our own BOM for our SDKs and their dependencies? Let’s find out.

As an example, we can take a look into the Jetpack Compose BOM dependency’s package contents. For this purpose, we can open Google’s Maven repository and search for it. Inside you can see only a POM file. Let’s see what’s inside.

(more…)

Using the Gradle Version Catalog in Android projects

The Gradle build system Version Catalog is a powerful tool that can help you manage dependencies and plugins in your Android projects. Instead of hard-coding dependency names and versions in individual build files and updating each entry whenever you need to upgrade a dependency, you can create a centralized version catalog of dependencies that various modules and even projects can reference in a type-safe way with Android Studio assistance. This makes managing dependencies and plugins easier when you have multiple modules or projects.

(more…)