Flutter ist ein Framework (Tool) für Software-Entwickler. Die Plattform wurde von Google konstruiert und ermöglicht es, Cross-Plattform Apps in der Programmiersprache Dart zu entwickeln. Eine Cross-Plattform App ist eine Software, die beispielsweise im Web (WebApp), auf iOS und Android installiert werden kann. Der größte Vorteil: Es wird nur ein Programm-Code für mehrere Plattformen benötigt. Durch diese Kostenreduzierung können die Ressourcen bei der App-Entwicklung auf wichtige Bereiche zum Beispiel Sicherheit, Performance und Nutzerfreundlichkeit gelegt werden.

In diesem Blogpost werden wir auf die Vor- und Nachteile des Flutter-Frameworks eingehen.  

Das ofizielle Flutterlogo

 

Was ist Flutter?#

Ein Framework#

Ein Framework ist ein Programmiergerüst, das in der Softwaretechnik insbesondere im Rahmen der objektorientierten Softwareentwicklung verwendet wird. Programmierer nutzen Frameworks, um die grundlegende Struktur ihrer Software zu bestimmen. Dabei stellt es keine eigenständige Software dar, sondern nur die Regeln und den Rahmen, in denen die Software entwickelt wird. Hauptsächlich werden Frameworks verwendet, wenn die Programmiersprache objektorientiert eingesetzt wird. Objektorientierter Quellcode versucht wiederkehrende Elemente allgemeingültig zu beschreiben. Elemente können bei der nächsten Verwendung schneller eingesetzt werden, weil sie schon existieren. Je mehr Elemente vordefiniert wurden, desto effizienter die Software-Entwicklung.

Zusätzlich beinhalten Frameworks genormte Schnittstellen zu verschiedenen Systemen, wodurch die Kommunikation der Software nach innen und außen vereinfacht wird.

 

Anwendungsbeispiel: Programm-Code innerhalb von Flutter#

 

Im folgenden Anwendungsfall wird die Login-Funktion einer App dargestellt, um das Flutter-Framework und einige Funktionen dessen vorzustellen. Der Login-Bildschirm besteht aus mindestens 2 Textfeldern (E-Mail, Passwort) und 2 Buttons (Einloggen, Registrieren).

 

Wiederkehrende Elemente im Login-Screen der Todo-App von In2Bit

 

In der objektorientierten Programmierung wird ein Textfeld und ein Button als Objekt definiert. Die Objekte werden bei Flutter “Widgets” genannt. Die Widgets zeichnen sich durch eine feste Grundstruktur aus. Die Grundstruktur kann während eines individuellen Einsatzes durch Eigenschaften (z.B. Farbe) verändert und angepasst werden. So kann mehrmals auf die Grundstruktur unter verschiedenen Eigenschaften zugegriffen werden. Das Framework fasst viele gängige Widgets in einer Sammlung (Bibliothek) zusammen. Die festen Strukturen unterstützen den Entwicklungsprozess. Ein Beispiel für ein Flutter-Widget mit angepassten Eigenschaften:

TextFormField(
    decoration: CustomTextFieldStyles().outLinedTextFormField(
    context: context,
    hasError: false,
    labelText: "Username / E-mail"),
    validator: (value) {
        if (value!.isEmpty) {
            return "Benutzername oder Email angeben";
        }
        return null;
    },
    controller: usernameOrEmailTEC,
    autofillHints: const [AutofillHints.email],
)

 

Die positive Entwicklung von Flutter#

Flutter ermöglicht es Software präzise, zuverlässig und effizient zu erstellen. Cross-Plattform Frameworks erfreuen sich durch die oben genannten Vorteile steigender Beliebtheit. Unter allen Frameworks, verbreitet sich Flutter durch die organisierte Struktur sehr schnell unter Software-Entwickler*innen.

 

Die Verwendung (weltweit) von Cross-Platform Frameworks von Software-Entwicklern.

 

Flutters Umgang mit Fehlern im Programm-Code (Error Handling)#

Flutter vereinfacht es Anwender*innen fehlerhafte Programmstrukturen zu erkennen. Die unterliegende Programmiersprache Dart ist stark Java-orientiert und ermöglicht es mit Checkpoints/ Breakpoints den Quellcode zu analysieren. Try-Catch Logiken erweitern die Fehlersuche. Flutters eingebauter “Hot Reload” bietet ohne aufwändiges Kompilieren innerhalb von Millisekunden die Software zu testen.

 

Fazit#

Vorteile#

  • Google als marktführender Entwickler von Flutter und Dart.
  • Stetig wachsende Community und Weiterentwicklungen.
  • Cross-Plattform bietet eine Codebase für viele Plattformen.
  • Flutter bietet eine mächtige Kontrolle über die individuelle Anpassbarkeit der Software.
  • Einfaches Error-Handling für weniger Softwarefehler unter anderem durch “Hot Reload”.
  • Sichere Apps durch Open-Source und Error-Handling.
  • Native Features: Kotlin (Android) und Swift (iOS) können spezifisch im Code verwendet werden.
  • Open Source: Der gesamte Code von Googles Framework ist öffentlich.

Nachteile#

  • Die Software ist größer (mehr Speicher) als Plattform-spezifisch entwickelte Software.
  • Flutter wurde erst 2017 veröffentlicht und ist dadurch noch relativ neu.

Das Team von In2Bit nutzt unter anderem Flutter für die Software-Entwicklung verschiedener Tools, um Sie bei Ihrem Vorhaben zu unterstützen.