It’s #FrontendFriday – Build Skripte ausführen in Flutter™️

22.03.2024

Es ist wieder #FrontendFriday! Schreibst du gerne Skripte für Npm, Gradle, Cargo & Co. um dir den Entwicklungsprozess zu vereinfachen und möchtest das Ganze auch in Flutter umsetzen? Dann könnte dieser Beitrag einen nützlichen Tipp für dich bereithalten.

Build-, Validierungs- und andere Custom-Skripte befinden sich meist in einer zentralen Konfigurationsdatei. Im Fall von Flutter ist das die Datei pubspec.yaml. Das Problem hierbei ist, dass das Framework von Haus aus keine Möglichkeit bietet eigene Skripte auszuführen. Glücklicherweise stellt die Flutter Community gleich mehrere Packages zur Lösung bereit. Eines dieser Packages ist derry.

Installation

Voraussetzung für die Installation von derry ist eine eingerichtete und funktionsfähige Flutter SDK. Anschließend lässt sich das Package (siehe pub.dev) über folgenden Befehl installieren:

dart pub global activate derry

Setup & Nutzung

Nach der Installation von derry gibt es 2 Möglichkeiten Skripte für Flutter zu schreiben.

  • direkt in der pubspec.yaml Datei
  • ausgelagert in eine separate Datei

Gerade bei einem Projekt mit mehreren Skripten, bietet es sich an, diese in eine eigene Datei auszulagern. Dadurch bleibt der Umfang der Konfigurationsdatei geringer und die Skripte sind schneller zu finden.

Der folgende Screenshot zeigt beispielhaft die Verzeichnisstruktur eines Flutter-Projekts. In Rot markiert sind einerseits die Konfigurationsdatei pubspec.yaml und eine zweite Yaml-Datei für Skripte – in diesem Fall derry.yaml genannt.

Das Bild zeigt einen Screenshot einer Projektstruktur von Flutter. Markiert sind zwei Dateien: derry.yaml und pubspec.yaml. Die Dateien befinden sich auf der obersten Ebene des Projektverzeichnisses.
eigene Darstellung

Der folgende Codeausschnitt ist ein Beispiel, wie Flutter Skripte aussehen können und zeigt den Inhalt der Datei derry.yaml:

localization:
 - dart run easy_localization:generate -S assets/i18n -O lib/common/localization -o locale_keys.g.dart -f json -u true
clean_install:
 - flutter clean
 - flutter pub get
 - flutter upgrade -f
build_android:
 - derry clean_install
 - flutter build apk -t lib/main.dart
build_ios:
 - derry clean_install
 - flutter build ios
build_release:
 - derry build_android
 - derry build_ios

Nicht eingerückte Begriffe repräsentieren die Skriptnamen. Die Stichpunkte darunter sind die einzelnen Befehle, die derry nacheinander für den jeweiligen Namen ausführt.

Damit derry die definierten Skripte nutzen kann, muss die Datei in pubspec.yaml referenziert werden:

# ... content of pubspec.yaml 

scripts: derry.yaml

Anstelle des Dateinamens (hier derry.yaml) könnte man, alternativ zur separaten Datei, die einzelnen Skripte direkt einfügen:

# ... content of pubspec.yaml

scripts:
  clean_install:
    - flutter clean
    - flutter pub get
    - flutter upgrade -f

Mit diesem Setup kann man die Skripte nach der Syntax derry <script_name> ausführen.
Beispiele:

dart localization
dart build_android
dart clean_install

 

Zurück zur Übersicht

Kommentar verfassen

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

*Pflichtfelder

*