Skip to content

Software Development at Program Tom LTD

Place for coding, programming, development and software in general.

Menu
  • Blog
  • PDF Booklets
  • Dev Utils & Content
  • Java Spring Boot Or Web Apps
  • English
    • български
    • English
    • Español
    • Português
    • हिन्दी
    • Русский
    • Deutsch
    • Français
    • Italiano
    • العربية
  • About Us
Menu
Maestro - Swiss Knife for testing, accessibility, screnshots & supports Flutter

Maestro – Swiss Knife for testing, accessibility, screnshots & supports Flutter

Posted on December 23, 2025December 23, 2025 by Toma Velev

Maestro (from mobile.dev, often referred to as maestro.dev) is an open-source UI testing framework for mobile apps, including Flutter apps on Android and iOS, but also Web with the super-ability to automate end-to-end tests using simple YAML flows, interacting with your app via accesibility semantics labels, text, or identifiers and also have the featur to create screenshots.

  • – It does not give you code coverage

But

  • + It elevates your thinking to use accessibility every day.
  • + Allows testing flows
  • + can be used by non-tech to jump from manual to automated QA
  • + can create screenshots

How to Generate Screenshots (Images) of Your Flutter App Using Maestro

  1. Set Up Maestro
    Install Maestro via curl (follow the official guide):

    curl -Ls "https://get.maestro.mobile.dev" | bash
    

    Ensure your Flutter app is built:

    • Android: flutter build apk
    • iOS: flutter build ios (on macOS)
  2. Add Semantics to Your Flutter Widgets (Recommended for Reliable Interaction)
    Maestro relies on accessibility/semantics for Flutter. Wrap widgets with Semantics or use semanticLabel:

    Semantics(
      label: 'Login Button',
      child: ElevatedButton(onPressed: () {}, child: Text('Login')),
    )
    
  3. Create a YAML Flow File (e.g., screenshots.yaml)
    Define steps to navigate your app and take screenshots at key points:

    appId: com.example.yourapp  # Your Flutter app's bundle ID
    ---
    - launchApp
    - tapOn: "Home Tab"  # Uses semantics label or text
    - takeScreenshot: home_screen.png  # Saves screenshot to current directory
    - swipe:
        from:
          x: 50%
          y: 80%
        to:
          x: 50%
          y: 20%
        duration: 1000
    - takeScreenshot: detail_screen.png
    - inputText: "Search query"
    - tapOn: "Search Button"
    - takeScreenshot: search_results.png
    
  4. Run the Flow
    Start an emulator/simulator or connect a device, then:

    maestro test screenshots.yaml
    

    Screenshots (PNG images) will be saved in your working directory.

  5. Advanced Options
    • Use Maestro Studio for visual recording: maestro studio — interact with your app, and it auto-generates commands (including screenshots).
    • Run on cloud for multiple devices: Upload to Maestro Cloud.
    • For automated screenshot suites (e.g., app store assets): Chain multiple takeScreenshot commands after navigating to different locales, themes, or screens.

Showcase of screenshoting: https://youtu.be/RB-QtyjV_a0 For full Maestro docs: https://maestro.mobile.dev

  • Join iOS Beta Testing Explained
  • Firebase App Distribution Setup
  • iOS App Lifetime Unverified
  • Flutter Bottom Border
  • Get Flutter current time zone

Categories

  • Apps (25)
  • ChatGPT (24)
  • Choosing a Framework (38)
  • Flutter (279)
  • Graphical User Interface (14)
  • Marketing (118)
  • Software Development (288)
  • Spring (45)
  • StartUp (22)
  • Uncategorized (4)
  • Uncategorized (14)
  • Vaadin (15)

Tags

Algorithms (9) crypto (29) flutterdev (39) General (86) Java (7) QR & Bar Codes (3) Software Dev Choices (33) Spring Boot (1) standards (1) Theme (3) User Authentication & Authorization (9) User Experience (10) Utilities (19) WordPress (11)

Product categories

  • All Technologies (86)
    • Flutter Apps (26)
    • GPT (4)
    • Java (38)
    • Native Android (3)
    • PHP (9)
    • Spring (Boot) / Quarkus (35)
    • Utils (15)
    • Vaadin 24+ (27)
    • Vaadin 8 (1)
  • Apps (18)
    • Employees DB (1)
    • Notes (6)
    • Personal Budget (1)
    • Recipes Book (1)
    • Stuff Organizer (1)
    • To-Do (2)
  • PDF Books (3)
  • Source Code Generators (8)

Recent Posts

  • Join iOS Beta Testing Explained
  • Firebase App Distribution Setup
  • iOS App Lifetime Unverified
  • Flutter Bottom Border
  • Get Flutter current time zone

Post Categories

  • Apps (25)
  • ChatGPT (24)
  • Choosing a Framework (38)
  • Flutter (279)
  • Graphical User Interface (14)
  • Marketing (118)
  • Software Development (288)
  • Spring (45)
  • StartUp (22)
  • Uncategorized (4)
  • Uncategorized (14)
  • Vaadin (15)