Screengrab (Fastlane) — wat is het, mogelijkheden en automatisering van screenshots

Auteur: IT Sectr Gepubliceerd: 2026-04-15 Leestijd: 8 min

Screengrab is een hulpprogramma uit het Fastlane-ecosysteem voor het automatiseren van het maken van screenshots van mobiele applicaties voor Android en iOS. In plaats van handmatig door schermen te scrollen op tientallen apparaten, voert de ontwikkelaar een commando uit en Screengrab maakt zelfstandig opnames van alle benodigde schermen. Volgens Fastlane Docs, 2026 ondersteunt het hulpmiddel tegelijkertijd tot 30 talen en elke schermresolutie die in de configuratie is ingesteld.

Belangrijkste

  • Screengrab — Fastlane-hulpmiddel voor het automatisch maken van screenshots van mobiele apps voor Android en iOS.
  • Automatisering vervangt het handmatig maken van honderden screenshots door een commando in de terminal.
  • Lokalisatie — gelijktijdige generatie van screenshots in tientallen talen zonder extra instellingen.
  • CI/CD — integratie met elke pipeline: Jenkins, GitHub Actions, GitLab CI.
  • Flexibiliteit — ondersteuning voor meerdere apparaten, oriëntaties en talen in één uitvoering.

Wat is Screengrab en waarom is het nodig

Screengrab — is een component van het Fastlane-ecosysteem voor het geautomatiseerd maken van screenshots van mobiele applicaties. Het hulpmiddel verscheen in 2015 als antwoord op het probleem: voor publicatie in Google Play en App Store zijn 4 tot 10 screenshots per taal vereist. Bij ondersteuning van 30 talen betekent dit 120–300 handmatig gemaakte afbeeldingen.

Het probleem van handmatig screenshots maken

De ontwikkelaar start handmatig de app op een simulator of apparaat, scrolt naar het gewenste scherm, maakt een screenshot, brengt het over naar de computer, snijdt het bij en slaat het op in de juiste map. De procedure wordt herhaald voor elke taal en elke oriëntatie. Volgens Google Play Console wordt de gemiddelde app elke twee weken bijgewerkt, wat screenshots tot een regelmatige routine maakt.

Voordelen van automatisering

Screengrab lost het probleem radicaal op: de ontwikkelaar beschrijft testsenario's in het UI-framework (Espresso voor Android, XCTest voor iOS) en Screengrab voert ze automatisch uit op alle benodigde apparaten en talen. Fastlane coördineert het proces: compileert de build, voert tests uit, verzamelt screenshots en verpakt ze in de juiste mapstructuur.

Het resultaat — honderd screenshots in 10–15 minuten in plaats van enkele uren handmatig werk. Google raadt aan om screenshots bij elke significante interfacewijziging bij te werken, en zonder automatisering wordt dit advies vaak genegeerd.

Hoe werkt Screengrab: architectuur en werkingsprincipe

De architectuur van Screengrab is opgebouwd rond twee kerncomponenten: de client op het apparaat (screengrab-lib) en de runner die het uitvoeren van tests en het verzamelen van resultaten beheert. Op Android wordt het instrumentele testframework gebruikt, op iOS — XCTest.

Levenscyclus van één uitvoering

Fastlane roept de actie screengrab aan, die het configuratiebestand Screengrabfile leest. De runner compileert de test-APK met de aangesloten screengrab-lib bibliotheek, installeert deze op aangesloten apparaten of emulators en voert UI-tests uit die zijn gemarkeerd met annotaties voor screenshots.

ruby
# Fastfile — beschrijving lane voor screenshots
lane :screenshots do
  capture_android_screenshots(
    output_directory: "fastlane/metadata/android/screenshots",
    locales: ["ru-RU", "en-US", "de-DE"],
    devices: ["pixel_6", "pixel_tablet"],
    use_tests_external_storage: true
  )
end

Structuur van uitvoerbestanden

Screengrab creëert een hiërarchie van mappen: taal → apparaat → screenshots. De structuur voldoet volledig aan de vereisten van Google Play Console en App Store Connect. App Store vereist strikt gedefinieerde afmetingen voor elk apparaattype en Screengrab genereert afbeeldingen exact volgens specificaties.

Ondersteuning voor meerdere apparaten

Het hulpmiddel kan tests parallel uitvoeren op alle aangesloten apparaten en emulators. Android emulators worden automatisch gestart als ze niet actief zijn. Voor iOS gebruikt Screengrab Xcode-simulators.

Installatie en configuratie van Screengrab voor Android

Installatie van Screengrab bestaat uit twee delen: toevoegen van de bibliotheek aan het project en configuratie van het configuratiebestand. Op Android is het UI-framework Espresso en de bibliotheek screengrab-lib uit de Fastlane-repository nodig.

Toevoegen van afhankelijkheden

In build.gradle van de app-module wordt de afhankelijkheid screengrab-lib toegevoegd. De bibliotheek biedt de klasse ScreenCapturer die op het moment van aanroep een screenshot maakt.

groovy
// build.gradle (module: app)
androidTestImplementation(
  'tools.fastlane:screengrab-lib:2.1.0'
)

Test schrijven met screenshots

De UI-test wordt gemarkeerd met de annotatie Screengrab.screenshot() op de benodigde punten. Elke aanroep maakt een screenshot van het huidige scherm en slaat deze op met de opgegeven naam.

kotlin
import tools.fastlane.screengrab.Screengrab
import tools.fastlane.screengrab.locale.LocaleTestRule

class ScreenshotTest {

    @get:Rule
    val localeTestRule = LocaleTestRule()

    @Test
    fun testTakeScreenshots() {
        Screengrab.screenshot("main_screen")
        // Acties: klik op de inlogknop
        Screengrab.screenshot("login_screen")
    }
}

Screengrabfile configuratie

Het bestand Screengrabfile slaat de uitvoeringsparameters op: lijst van apparaten, talen, time-outs en opslagpad. Het bestand bevindt zich meestal in de fastlane-map naast Fastfile.

Lokalisatie van screenshots en meerdere talen

Lokalisatie — de belangrijkste mogelijkheid van Screengrab, waarvoor het het vaakst wordt gekozen. Het hulpmiddel schakelt automatisch de taal van de app vóór elke testuitvoering en maakt opnames in alle opgegeven talen.

Talen configureren

Talen worden ingesteld in Screengrabfile met de parameter locales. Voor elke taal herinstalleert Screengrab de app met de bijbehorende bronnen en voert een volledige testcyclus uit. LocaleTestRule op Android schakelt automatisch de locale van het apparaat.

ruby
# Screengrabfile
locales [
  "ru-RU",
  "en-US",
  "de-DE",
  "fr-FR",
  "es-ES",
  "ja-JP",
  "ko-KR"
]

Mapstructuur voor gelokaliseerde screenshots

Screengrab maakt directories volgens het schema: screenshots/{locale}/{device_name}/{screenshot_name}.png. Deze structuur komt direct overeen met de vereisten van Google Play, waardoor screenshots via Fastlane deliver met één commando kunnen worden geüpload.

Voor iOS verwacht App Store Connect screenshots in een platte structuur per taal. Fastlane converteert automatisch de Screengrab-hiërarchie naar het vereiste formaat bij publicatie.

Integratie van Screengrab in CI/CD-pipeline

CI/CD integratie is een van de belangrijkste voordelen van Screengrab. Het hulpmiddel wordt gestart vanaf de commandoregel en vereist geen grafische interface, wat het ideaal maakt voor server-builds.

GitHub Actions

In een CI-omgeving moet de Android-emulator of iOS-simulator worden gestart, waarna de lane met screenshots wordt aangeroepen. GitHub Actions ondersteunt caching van AVD, wat herhaalde uitvoeringen versnelt.

Parameters voor CI

In de CI-configuratie is het belangrijk rekening te houden met geheugen- en tijdsbeperkingen. Android emulators vereisen minimaal 2 GB RAM per apparaat en een volledige uitvoering op 7 talen en 2 apparaten duurt 20–40 minuten.

ruby
# Fastfile — lane voor CI met time-outs
lane :ci_screenshots do
  capture_android_screenshots(
    locales: ["en-US", "ru-RU"],
    devices: ["pixel_6"],
    clear_previous_screenshots: true,
    tests_timeout: "600",
    output_directory: "screenshots/ci"
  )
end

Jenkins Pipeline

Voor Jenkins wordt de stap sh gebruikt met de aanroep bundle exec fastlane. Het wordt aanbevolen om screenshots 's nachts of na een trigger na een merge in de hoofd branch uit te voeren om de ontwikkelcyclus niet te vertragen.

Screengrab vs alternatieven: vergelijking van tools

Screengrab is niet de enige tool voor het automatiseren van screenshots. Er zijn alternatieven met verschillende benaderingen: ingebouwde OS-hulpmiddelen, commerciële platforms en bibliotheken voor screenshots in code.

ToolPlatformLokalisatieCI/CD
ScreengrabAndroid, iOSAutomatischNative
ADB ShellAndroidHandmatigVia scripts
XCTestiOSHandmatigVia xcodebuild
Firebase Test LabAndroidConfiguratie vereistJa
AppiumCross-platformHandmatigVia WebDriver

ADB Shell geeft volledige controle, maar vereist het schrijven van scripts voor elk scenario. XCTest is ingebouwd in Xcode, maar beheert lokalisatie niet automatisch. Firebase Test Lab voert tests uit op echte apparaten in de cloud, wat maximale dekking biedt, maar vereist betaling per minuut.

Screengrab wint door de combinatie: Fastlane beheert de volledige levenscyclus van de build — van compilatie tot publicatie. Google Play accepteert de Screengrab-mapstructuur direct via Fastlane deliver.

Typische problemen en hun oplossingen

Bij het werken met Screengrab komen ontwikkelaars het vaakst een aantal terugkerende problemen tegen. Kennis van typische fouten verkort de debuggingstijd bij de eerste uitvoering.

Screenshots zijn leeg of zwart

Het probleem treedt op wanneer Screengrab een opname maakt vóór voltooiing van het renderen van het scherm. Oplossing — voeg een vertraging Thread.sleep() toe vóór de screenshot()-aanroep of gebruik IdlingResource van Espresso om te wachten op asynchrone bewerkingen.

Fout door versie-incompatibiliteit

De bibliotheek screengrab-lib moet overeenkomen met de Fastlane-versie. Fastlane wordt maandelijks bijgewerkt en de oude bibliotheek ondersteunt mogelijk nieuwe configuratieparameters niet. Oplossing — synchroniseer versies via Gemfile en gradle.properties.

Lange uitvoeringstijd in CI

Uitvoering op 30 talen op 5 apparaten kan meer dan een uur duren. Oplossing — splits uitvoeringen: één voor de winkel in alle talen, een andere voor interne behoeften in twee talen. GitHub Actions maakt gebruik van een strategiematrix voor parallelle uitvoeringen.

Problemen met emulator in CI

De Android-emulator vereist hardwarevirtualisatie, die niet altijd beschikbaar is op CI-servers. KVM moet zijn ingeschakeld, anders start de emulator niet. Oplossing — gebruik x86-images zonder GPU-versnelling of Firebase Test Lab.

Veelgestelde vragen

Waarin verschilt Screengrab van een gewone screenshot via ADB?

ADB maakt een opname van wat er op dat moment op het scherm wordt weergegeven. Screengrab integreert met UI-tests, schakelt automatisch talen en apparaten en maakt een reeks opnames volgens scenario zonder menselijke tussenkomst.

Kan Screengrab zonder Fastlane worden gebruikt?

Nee, Screengrab is een component van het Fastlane-ecosysteem en gebruikt de infrastructuur voor compilatie, installatie en coördinatie. De bibliotheek screengrab-lib werkt niet apart — Fastlane is nodig als orkestrator.

Hoe lang duurt het genereren van screenshots in 10 talen?

Op één apparaat duurt een uitvoering in 10 talen 15–25 minuten. Elke taal vereist herinstallatie van de app en een volledige cyclus van UI-tests. Parallelle uitvoering op meerdere apparaten verkort de tijd evenredig.

Ondersteunt Screengrab iOS-apps?

Ja, Screengrab ondersteunt iOS via XCTest en Xcode-simulators. Configuratie is vergelijkbaar met Android: talen en apparaten worden toegevoegd en UI-tests in Swift worden geschreven met XCTest en opnames via XCUIScreenshot.

Hoe screenshots alleen voor nieuwe talen bijwerken?

Screengrab ondersteunt geen incrementele modus — elke uitvoering genereert een volledige set screenshots. Het wordt aanbevolen om een aparte lane voor CI in te stellen met een beperkte lijst van talen om bestaande opnames van de hoofd uitvoering niet te overschrijven.

Samenvatting

  • Screengrab — Fastlane-component voor het automatiseren van screenshots van mobiele apps voor Android en iOS.
  • Automatisering vervangt het handmatig maken van honderden screenshots door een enkel commando in de terminal.
  • Lokalisatie — het hulpmiddel schakelt automatisch de taal van de app vóór elke testuitvoering.
  • CI/CD — integratie met Jenkins, GitHub Actions, GitLab CI en andere pipelines zonder grafische interface.
  • Structuur van uitvoerbestanden voldoet aan de vereisten van Google Play en App Store voor direct uploaden.
  • Flexibiliteit — ondersteuning voor meerdere apparaten, schermoriëntaties en aangepaste testsenario's.
  • Besparing — honderd screenshots in 15 minuten in plaats van enkele uren handmatig werk bij elke update.

We ontwikkelen een mobiele applicatie turnkey

IT Sectr creëert sinds 2017 iOS- en Android-applicaties voor startups en bedrijven. We adviseren u en stellen de beste oplossing voor.

Bespreek het project

Lees ook