Flutter Factory - Die einfachste Art Flutter Projekte mit Dart zu verwalten

English Version on Medium

Im April 2019 hatten wir die Möglichkeit die offizielle App für unser hiesiges Eishockey Team die Starbulls Rosenheim zu entwickeln. (Verfügbar für IOS und Android)

Während der Recherche für das Projekt sind wir auf das zu diesem Zeitpunkt noch kleine Cross-Platform Framework Flutter gestoßen. Zu sagen das Flutter zu diesem Zeitpunkt noch ein wenig anders war, wäre eine Untertreibung. Geniale Bibliotheken wie flutter_bloc und sqfentity gab es noch nicht und wir haben im Prinzip bei Null anfangen müssen. Dieser Prozess jeden noch so kleinen Teil der App fast von Grund auf zu entwickeln war sehr lang und anstrengend.

Wir verwenden Flutter nun seit über einem Jahr als unser primäres Framework für die App Entwicklung und haben während dieser Zeit auch immer mehr dazu gelernt. Nun haben wir uns dazu entschlossen die Zeit und Ressourcen zu investieren und ein Template sowie eine dazu gehörige CLI zu entwickeln, die uns dabei helfen sollen dem Entwicklungsprozess bei jedem Projektstart einen Geschwindigkeitsboost zu geben. Die Open Source Projekte flutter-factory und flutter-factory-templates waren geboren.

Okay, coole Geschichte. Was ist das jetzt genau und was nützt es mir?

flutter-factory ist eine CLI. Ihre Hauptaufgabe ist es neue Flutter Projekte zu erstellen und automatisch zu konfigurieren. Im Prinzip übernimmt Sie all die langweiligen Schritte am Anfang jedes neuen Projekts. Die Basis für alle neuen Projekte ist:

flutter-factory-templates ein Flutter Template das (fast) alles enthält was jede App braucht. Unter anderem:

  • State management mit Hilfe der neuesten und besten Version von flutter_bloc
    • Ein Todo Beispiel ist auch dabei um das bloc pattern besser zu verstehen
  • Komplette Firebase Authentifizierungsabläufe inklusive fertiger Views für das erstellen eines Accounts, einloggen und Login mit Apple, Google und Facebook wird auch unterstützt.
    • Wenn du diese Drittanbieter nicht selbst konfigurieren möchtest, kannst du auch einfach
      $ flutter-factory auth benutzen und die CLI leitet dich durch einen simplen Konfigurationsprozess.
  • Firebase Messaging Einbindung für Push Benachrichtigungen – In App Benachrichtigungen sind auch dabei!
  • Firebase Remote Config und eine lokale Konfiguration werden auch unterstützt.

Um das ganze mal Zusammenzufassen, flutter-factory macht dein Leben einfacher und den Entwicklungsprozess schneller.

Habs Verstanden. Ist ganz cool. Wie benutze ich das?

Als erstes, muss man die CLI installieren. Das geht ganz einfach mit:

$ npm i -g flutter-factory (Außerdem müssen git und firebase-tools installiert sein.)

Und jetzt ist man nur noch einen Befehl von einer komplett ausgestatteten App entfernt. Einfach

$ flutter-factory create

eingeben und die CLI leitet dich durch das einstellen der App. Firebase wird automatisch mit konfiguriert!

Warte mal, es gibt noch mehr!

Zusätzlich zum create Befehl gibt es auch noch andere Dinge bei denen die CLI helfen kann. Es gibt zum Beispiel noch den Befehl

$ flutter-factory rename

dieser kann in jedem Flutter Projekt ausgeführt werden um nicht nur das Flutter Projekt selber (also das Dart Paket) sondern auch gleich das Android Package und den Ios Bundle Identifier umzubenennen.

Wie oben in den Features des Templates bereits erwähnt gibt es auch noch den

$ flutter-factory auth

Befehl, dieser macht es einfach Dritt-Authentifizierungs Provider zu konfigurieren.

Um ein Firebase Projekt zu erstellen oder nur zu einer App hinzuzufügen gibt es

$ flutter-factory firebase

Dieser Befehl lässt dich aus einer Liste deiner Firebase Projekte auswählen oder auch ein neues erstellen und fügt dieses dann deinem Flutter Projekt hinzu. Außerdem werden die beiden Konfigurationsdateien für Ios und Android heruntergeladen und direkt in die entsprechenden Ordner gelegt.

Was steckt unter der Haube?

Die CLI ist in Typescript geschrieben und baut auf commander.js auf. Alle Benutzereingaben werden mit inquirer verarbeiten und die farbliche Darstellung kommt von chalk. Alles was mit Firebase zu tun hat verwendet deine lokale Installation der firebase-tools. Außerdem ist der gesamte Code der CLI und der des templates Open Source und jederzeit einsehbar.

Wir hoffen das die flutter-factory ein wichtiges Werkzeug in deinem Flutter Repertoire wird und dir sowohl mit neuen als auch bestehenden Flutter Projekten hilft! Falls dir das Projekt gefällt schenk uns doch einen Star auf Github, kostet immerhin nichts.