5.2. Flutter

Flutter ist ein open-source UI Software Development Kit von Google und steht unter der NewBSD Lizenz. Cross-Plattform Entwicklung für Android, IOS, Windows, macOS, Linux und sogar Web ist die Hauptaufgabe von Flutter.

5.2.1. Allgemeines

Flutter ist in C++ geschrieben und verwendet die Dart Virtual Machine. Für Dekstop Anwendungen auf Plattformen wie Android, IOS, Windows, Linux und macOS verwendet Flutter entweder einen Just in Time (JIT) Compiler auf einer Dart VM oder einen Ahead of Time (AOT) Compiler, um direkt für die Zielplattform zu kompillieren. Für Web Projekte werden die sourcen in Javascript konvertiert und direkt sind direkt im Webbrowser lauffähig.

Grundliegend Implementiert Flutter Widgets. Ein Widget enthält Informationen über die Logik und Darstellung innerhalb eines Objektes und kann selbst aus Widgets bestehen.

Hier ein kurzes Beispiel, wie es in unserem Projekt aussieht:

class ScannedBarcodeTile extends StatelessWidget {
    // --snip--

    @override
    Widget build(BuildContext context) {
        return MaterialApp(
            // --snip--
        )
    }
}

Es gibt ebenso spezifische Design Widgets für spezielle Design Guidelines, wie zum Beispiel Apple’s iOS Human interface guidelines. Für Googles Design werden dafür Material Design und für Apple Cupertino Widgets verwendet. Beide Widget Typen funktionieren sowohl auf Android als auch auf iOS.

Flutter kann ebenso mit anderer Software arbeiten, wie z.B. Unity, ohne dass es der Effizienz schadet. IDEs, die Flutter unterstützen sind momentan IntelliJ, Android Studio, VS Code und Emacs. Natürlich kann man Flutter auch über die Kommandozeile mit Commandline Tools verwenden. Andere IDEs können ebenso Community Plugins haben, welche die Entwicklung mit Flutter einfacher macht.

5.2.2. Dart

Dart is eine Objekt-orientierte, Klassen-basierte Srache, welche Garbage Collection verwendet. In Flutter werden Source Dateien in Dart verfasst, unteranderem die Foundation Library. Ebenso werden Dart’s Pub Paket Manager und Software Repositories verwendet.

Dart ist für UI Entwicklung auf fast allen Plattformen optimiert. Über das Dart-SDK kann direkt mit der Entwicklung begonnen werden.

5.2.3. Emulatoren

Zur Entwicklung empfehlen sich Geräte Emulatoren, da somit schnell Funktionen und UI Änderungen getestet werden können.

Bei IOS Entwicklung gibt es den Apple eigenen iPhone Emulator, welcher auch in XCode selbst direkt verwendet werden kann, um schnell Änderungen zu sehen.

Für die Android Entwicklung gibt es das Android Development Kit, welches Google Pixel Emulatoren zur Verfügung stellt. IDEs wie VSCode können dann auf diesen Emulator zugreifen und die Codebase deployen. Installierte Emulatoren lassen sich über flutter emulators herausfinden. Anschließend kann der Emulator gestartet werden:

> flutter emulators
1 available emulator:
Pixel_3a_API_33_x86_64  Pixel_3a_API_33_x86_64  Google  android

> flutter emulators --launch "Pixel_3a_API_33_x86_64"

Für Web und Desktop Entwicklung benötigt man im Normalfall keinen Emulator, da man den Code direkt über den JIT mit Dart-VM oder AOT testen kann.

Mehr über Android Emulatoren kann hier nachgelesen werden: