Ruby in mobiele ontwikkeling: Fastlane, CI/CD en automatisering

Auteur: IT Sectr Gepubliceerd: 2026-02-11 Leestijd: 8 min

Ruby — een dynamische geïnterpreteerde taal met een elegante syntaxis, bekend van het Ruby on Rails-framework. In mobiele ontwikkeling wordt Ruby vooral gebruikt via Fastlane — de standaardtool voor het automatiseren van builds, testen en implementatie van iOS- en Android-apps. Volgens de officiële Fastlane-documentatie wordt de tool gebruikt in meer dan 100.000 projecten wereldwijd.

Belangrijkste punten

  • Ruby — een dynamische taal die in mobiele ontwikkeling via Fastlane wordt gebruikt voor buildautomatisering
  • Fastlane — de facto standaard voor CI/CD in iOS- en Android-ontwikkeling, geschreven in Ruby
  • Fastfile — configuratiebestand in Ruby-achtige DSL die het buildproces beschrijft
  • Match en Deliver — Fastlane-actions voor certificaatbeheer en publicatie in de App Store
  • Ruby Gems — pakketbeheerder waarmee Fastlane kan worden uitgebreid met plug-ins

Wat is Ruby?

Ruby — een dynamische geïnterpreteerde taal met open source, gecreëerd door Yukihiro Matsumoto in 1995. Het basisprincipe van Ruby — «optimale eenvoud» (principle of least surprise). De taal staat bekend om blokken (closures), een pure objectgeoriënteerde benadering (alles is een object, inclusief getallen) en een krachtig metaprogrammeersysteem.

Ruby draait op de YARV-interpreter (Yet Another Ruby VM) met JIT-compilatie sinds versie 3.1. De huidige versie Ruby 3.4 (2025) bevat decorators, de verbeterde Prism-parser en experimentele typeondersteuning via RBS. RubyGems — de pakketbeheerder — bevat meer dan 200.000 gems.

Ruby on Rails — het bekendste webframework in Ruby, maar in mobiele ontwikkeling wordt Ruby anders gebruikt. De belangrijkste niche — Fastlane: een ecosysteem van Ruby-scripts en gems voor het automatiseren van alle fasen van de levenscyclus van een mobiele app: van het ondertekenen van certificaten tot publicatie in de winkels.

Basis Ruby-syntaxis voor Fastlane

Voor het werken met Fastlane is een basisbegrip van Ruby voldoende: methoden, do-end-blokken, symbolen (:symbol) en hash-syntaxis { key: value }. In tegenstelling tot Python gebruikt Ruby end voor het sluiten van blokken, niet inspringing. Methoden kunnen zonder haakjes worden aangeroepen — dit wordt actief gebruikt in de Fastlane DSL.

ruby
# Basis Ruby-syntaxis gebruikt in Fastlane
def download_assets(version, platform: "ios")
  paths = {
    ios: "ios/Assets.car",
    android: "android/app/src/main/assets"
  }
  url = "https://cdn.example.com/assets/#{version}/#{paths[platform.to_sym]}"
  puts "Downloading from: #{url}"

  unless File.exist?("temp/assets")
    Dir.mkdir("temp/assets")
  end
  result = system("curl -o temp/assets.zip #{url}")
  raise "Download failed" unless result
end

download_assets("1.2.3", platform: "android")

In het voorbeeld accepteert de methode download_assets een argument version en een optionele benoemde parameter platform (standaard ios). Stringinterpolatie via #{} voegt waarden rechtstreeks in strings in. unless — tegenhanger van if, voert code uit als de voorwaarde onwaar is.

Fastlane: automatisering van mobiele builds in Ruby

Fastlane — een open-source tool, geschreven in Ruby. Geïnstalleerd via gem install fastlane, biedt het een reeks opdrachten voor het automatiseren van de meest routinematige taken van een mobiele ontwikkelaar: het maken van screenshots, code-ondertekening, publicatie in TestFlight en Google Play Console.

Fastlane bestaat uit tools: sigh (certificaatbeheer), match (synchronisatie van certificaten in het team), gym (iOS-build), gradle (Android-build), deliver (iOS-publicatie), supply (Android-publicatie), snapshot (screenshots), scan (testen). Alle tools zijn toegankelijk vanuit één Fastfile.

In grote projecten verwerkt Fastlane tot 50+ acties in één pipeline: versieverhoging, downloaden van assets van CDN, build, ondertekening, upload naar App Store Connect, verzenden van een melding naar Slack. De hele pipeline wordt uitgevoerd met één commando: fastlane release.

Fastfile: configuratie van de buildpipeline

Fastfile — een bestand in Ruby-achtige DSL dat een reeks acties (lanes) beschrijft. Elke lane is een afzonderlijke taak: beta (build voor testen), release (uitgave), screenshots (genereren van screenshots). Lanes kunnen andere lanes aanroepen met doorgegeven parameters.

ruby
# Fastfile — configuratie van de buildpipeline voor iOS-app
fastlane_version "2.220.0"

default_platform :ios

platform :ios do
  desc "Build en implementatie van TestFlight-build"
  lane :beta do |options|
    increment_build_number(
      build_number: options[:build]
    )
    match(type: :appstore)
    gym(
      scheme: "MyApp",
      export_method: "app-store",
      configuration: "Release"
    )
    upload_to_testflight(
      app_identifier: "com.example.myapp"
    )
    slack(
      message: "Build #{options[:build]} is geüpload naar TestFlight"
    )
  end
end

De beta-lane voert achtereenvolgens uit: verhoging van het buildnummer (increment_build_number), synchronisatie van certificaten (match), compilatie van het archief (gym), upload naar TestFlight (upload_to_testflight) en verzenden van een melding naar Slack. De parameter :build wordt doorgegeven aan de lane als benoemd argument.

Android-configuratie in Fastfile

Fastlane ondersteunt beide platforms in één Fastfile. Voor Android wordt een lane binnen platform :android gebruikt met de acties gradle, supply en google_play_track_version_codes.

ruby
platform :android do
  desc "APK-build en publicatie in Google Play Internal Testing"
  lane :beta do
    gradle(
      task: "assemble",
      build_type: "Release",
      flavor: "Production"
    )
    supply(
      track: "internal",
      apk_paths: ["app/build/outputs/apk/release/app-release.apk"]
    )
  end
end

Belangrijkste Fastlane-actions voor iOS en Android

Fastlane bevat meer dan 200 ingebouwde acties. Hieronder — de belangrijkste voor mobiele ontwikkeling, onderverdeeld in categorieën.

ActiePlatformDoel
matchiOSSynchronisatie van certificaten en provisioning-profielen via Git
gymiOSCompilatie van .app- en .ipa-archief
scaniOSUitvoeren van UI-tests op de simulator
snapshotiOSAutomatisch genereren van screenshots op verschillende apparaten
deliveriOSUploaden van build, screenshots en metadata naar App Store Connect
pilotiOSBeheer van TestFlight: uploaden van build, toevoegen van testers
gradleAndroidUitvoeren van Gradle-taken: assemble, test, bundle
supplyAndroidUploaden van APK/AAB en metadata naar Google Play Console
screengrabAndroidAutomatische screenshots voor Google Play
firebase_app_distributionBeideUploaden van build naar Firebase App Distribution

Match: veilig certificaatbeheer

match — een Fastlane-gem voor synchronisatie van iOS-certificaten en provisioning-profielen tussen ontwikkelaars. Alle geheimen worden opgeslagen in een versleutelde Git-repository of S3. Match genereert automatisch certificaten als ze ontbreken en verlengt ze bij vervaldatum.

ruby
# Initiatie van match voor een nieuw project
$ fastlane match init

# Aanmaken en synchroniseren van App Store-certificaten
$ fastlane match appstore

# Aanmaken van Development-certificaten voor het team
$ fastlane match development

# Vernieuwen van alle certificaten bij verlopen
$ fastlane match --force

Match slaat privésleutels op met een wachtwoordzin die alleen ontwikkelaars kennen. Elke ontwikkelaar kloont de certificaatrepository en voert match uit om de huidige profielen te installeren. Apple-certificaten zijn 1 jaar geldig, match verlengt ze automatisch.

Integratie van Fastlane met CI/CD-systemen

Fastlane integreert met elk CI/CD-platform: GitHub Actions, GitLab CI, CircleCI, Bitrise, Jenkins en Xcode Cloud (via xcode-build). Fastlane wordt op CI gestart via fastlane <lane_naam> en retourneert een foutcode bij mislukking van een stap.

Configuratie voor GitHub Actions omvat installatie van Ruby, fastlane en het starten van de lane via bundle exec fastlane. Voor iOS-builds is een macOS-runner vereist. Voor Android kan ubuntu-latest worden gebruikt, wat goedkoper is.

yaml
# .github/workflows/deploy.yml — CI/CD met Fastlane
name: Deploy Mobile App
on:
  push:
    branches: [main]

jobs:
  ios-deploy:
    runs-on: macos-14
    steps:
      - uses: actions/checkout@v4
      - uses: ruby/setup-ruby@v1
        with:
          ruby-version: "3.3"
      - run: bundle install
      - run: bundle exec fastlane beta
      - env:
          MATCH_PASSWORD: ${{ secrets.MATCH_PASSWORD }}

De workflow wordt gestart bij push naar main. De macOS-runner voert bundle exec fastlane beta uit vanuit Fastfile. MATCH_PASSWORD wordt doorgegeven via GitHub Secrets voor het ontsleutelen van certificaten. Na voltooiing van de lane stuurt de Slack-actie een melding.

Ruby Gems en Fastlane-plug-ins

RubyGems — de pakketbeheerder voor Ruby. Fastlane wordt uitgebreid via plug-ins — gems die nieuwe acties toevoegen. De plug-in fastlane-plugin-versioning beheert versies, fastlane-plugin-firebase_app_distribution uploadt builds naar Firebase. Op GitHub zijn meer dan 500 Fastlane-plug-ins beschikbaar.

Gemfile in de projectroot legt versies van alle afhankelijkheden vast voor reproduceerbaarheid van builds. bundle install installeert gems volgens Gemfile.lock. Belangrijkste gems voor mobiele ontwikkeling: fastlane, cocoapods (iOS-afhankelijkheden), xcodeproj (werken met .xcodeproj).

ruby
# Gemfile voor een mobiel project
source "https://rubygems.org"

gem "fastlane", "~> 2.220"

plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile')
eval_gemfile(plugins_path) if File.exist?(plugins_path)

Fastlane versus alternatieven: vergelijking van benaderingen

Fastlane — niet de enige automatiseringstool. Laten we het vergelijken met de belangrijkste alternatieven op criteria die belangrijk zijn voor een mobiel team.

CriteriumFastlane (Ruby)Bitrise (web)Xcode Cloud (Apple)GitHub Actions (YAML)
FlexibiliteitMaximaal (code)Gemiddeld (steps)Laag (beperkt)Hoog
iOSVolledige ondersteuningVolledigVolledig (ingebouwd)Via self-hosted macOS
AndroidVolledige ondersteuningVolledigNeeVolledig
Certificaten (match)IngebouwdVia Code SigningAutomatischVia fastlane
Lokale uitvoeringJaNee (alleen CI)NeeVia act
Plug-ins500+200+ integratiesNee20.000+ acties

Fastlane blijft de meest flexibele tool voor complexe pipelines. Bitrise is handig voor teams zonder Ruby-ontwikkelaar. Xcode Cloud — voor eenvoudige iOS-projecten. GitHub Actions — als het team al GitHub gebruikt.

Veelgestelde vragen

Waarom Ruby in mobiele ontwikkeling als Kotlin en Swift bestaan?

Ruby wordt niet gebruikt voor het schrijven van mobiele apps, maar voor het automatiseren van build-, test- en implementatieprocessen via Fastlane. Fastlane is de facto standaard voor CI/CD in iOS- en Android-ontwikkeling.

Werkt Fastlane alleen op macOS?

Fastlane werkt op macOS, Linux en Windows, maar voor iOS-builds zijn Xcode en macOS vereist. Android-builds worden op elk platform uitgevoerd. Lokaal gebruiken ontwikkelaars macOS, op CI — macOS voor iOS en Linux voor Android.

Moet ik Ruby leren om met Fastlane te werken?

Een basisbegrip van Ruby is voldoende om met Fastlane te werken. Fastlane gebruikt een Ruby-achtige DSL in Fastfile. Voor typische taken is kennis van gems, do-end-blokken en basissyntaxis voldoende. Diepgaande kennis van Ruby is niet vereist.

Wat zijn de alternatieven voor Fastlane?

Alternatieven: Gradle voor Android (ingebouwd), Xcode Cloud (Apple), Bitrise (webinterface), GitHub Actions (YAML). Fastlane blijft de meest flexibele tool dankzij het rijke ecosysteem van acties en plug-ins.

Is Fastlane geschikt voor grote teams?

Ja, Fastlane wordt gebruikt door grote bedrijven. Alle acties en configuratiebestanden worden in de repository versiebeheerd en match zorgt voor veilige opslag van certificaten in de repository of S3.

Samenvatting

  • Ruby — een dynamische taal die in mobiele ontwikkeling via het Fastlane-ecosysteem wordt gebruikt voor buildautomatisering
  • Fastlane — CI/CD-standaard voor iOS en Android: 200+ acties, 500+ plug-ins, 100.000+ projecten
  • Fastfile — Ruby-achtige DSL met lanes: beta, release, screenshots voor verschillende buildscenario’s
  • Match lost het synchronisatieprobleem van iOS-certificaten en provisioning-profielen tussen ontwikkelaars op
  • Deliver en Supply — acties voor publicatie in App Store en Google Play met metadata en screenshots
  • CI/CD-integratie — Fastlane werkt in GitHub Actions, GitLab CI, CircleCI en Bitrise
  • Flexibiliteit — Fastlane overtreft Bitrise en Xcode Cloud dankzij een programmeerbare pipeline in Ruby

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