Flutter - pubspec.yaml (Android Studio)

Als Anfänger in Flutter möchte man loslegen, Code schreiben.

Den Editor bis in das letzte Detail zu konfigurieren, oder alle Feinheiten des Flutter Sprachsystems zu verstehen, verschiebt man da gerne auf später 😀. 

Das ist auch nicht schlimm. Als Anfänger verdient man kein Geld damit und ist von der ersten eigenen App wahrscheinlich noch weit entfernt.

Ab einem gewissen Zeitpunkt aber, kommt man nicht darum herum ins Detail zu gehen. In diesem Post geht es darum rein um das pubspec.yaml File.

Verständnis

Moderne Programmiersprachen haben ein Kern Element und Elemente die Du bei Bedarf in dein Projekt importieren musst ! Bei Dart ist dart:core dieses Kernelement.
dart:core musst Du nicht importieren. Dies geschieht automatisch.  

Möchtest Du jedoch eine Funktion aus dart:math verwenden, musst Du diese Bibliothek manuell in deinen Code einbinden. Dein Programm ist dann abhängig von dart:math !

Das heisst: ohne dart:math funktioniert Deine Anwendung nicht ! Je grösser dein Code wird, je mehr solcher Abhängigkeiten können entstehen. Im englischen Sprachraum spricht man dann von dependencies.

Was für Bibliotheken gilt, gilt auch für Bilder, Fonts etc. Sobald Du sie benutzt ist deine Anwendung abhängig von Ihnen.

Versionen

Man kann heute zwischen zwei Arten von Software unterscheiden: solche die weiter entwickelt und damit gepflegt wird und solche bei der das nicht mehr geschieht

Wenn eine Programmiersprache weiter entwickelt wird, verändert sie sich. Die Entwickler versuchen die Sprache zu verbessern und gehen eventuell auf Wünsche der Programmierer ein. 

So entstehen neue Versionen dieser Programmiersprache, die sich von älteren unterscheiden. Manche Unterschiede können dazu führen, das eine Anwendung, die unter der Version xy noch fehlerfrei funktionierte, unter der Version xq einen Fehler generiert.

Dies gilt nicht nur für die Programmiersprache, sondern auch für die Bibliotheken oder packages.

yaml

Das pubspec File in Flutter hat die Endung yaml. Dabei steht yaml für: Yaml Ain't Markup Language. 

Wie sinnvoll so ein Name ist, lasse ich mal dahingestellt 😂. Obwohl das auf deutsch heisst: Yaml ist keine Mark-Up Sprache definiert Wikipedia Yaml als: vereinfachte Auszeichnungssprache (Mark-Up) zur Datenserialisierung.

Falls Du mit dem Begriff Datenserialisierung noch nicht viel anfangen kannst, ist das nicht schlimm. 

Wichtig ist aber: Der Text im yaml File muss Regeln einhalten. Leerzeichen in yaml dienen z.b. dazu Strukturen zu bezeichnen

pubspec.yaml

Nun wissen wir was mit Abhängigkeiten gemeint ist und was der Grund für Versionen ist.

In einem Flutter Projekt
müssen wir solche Abhängigkeiten zentral in einem File erfassen, dem pubspec.yaml File. Blicken wir nun auf dieses File:

pubspec file

>=2.15.0 <3.0.0 : In meinem pubspec.yaml File habe ich das als Versionsangabe für Flutter. Wie ist nun das zu verstehen ? Um meine Anwendung zu verarbeiten muss die Flutter Version grösser oder gleich 2.15.0 sein, aber kleiner als 3.0.0 !

Wie oben schon erwähnt müssen auch eigene Daten, wie Bilder, Fonts hier eingetragen werden, bevor wir sie verwenden können. Ein Beispiel für Fonts:

pubspec zwei

Beachte bitte, das Zeilen die mit # beginnen Kommentare darstellen. Willst Du bei mehreren Zeilen das # entfernen, dann markiere ihn und drücke Ctrl + / .

Eine der häufigsten Arbeiten am pubspec.yaml File ist das hinzufügen einer externen Bibliothek / package . Diese muss unter dependencies: eingetragen werden:

dependencies


Im Bild oben siehst Du im übrigen rechts oben Buttons für Flutter Befehle. Wenn ich nun eine externe package einbinden möchte geht das so:

pubspec vier

random_words verwende ich hier nur als Beispiel. Wenn Du dich fragst was das ^ Zeichen zu bedeuten hat: ^1.0.2 ist die kurze Form für: >=1.0.2 < 2.0.0 ! Grösser oder gleich 1.0.2, aber kleiner als 2.0.0 .

Ich hoffe Dir ist die Bedeutung des pubspec.yaml Files jetzt klar. Falls Du Fragen hast, bitte einen Kommentar posten. Bis bald.

Kommentare

Beliebte Posts aus diesem Blog

Listen in Dart (2021): Part 1 List.filled List.empty und List.add

Dart und Klassen

Dart Basic: Strings Part 1