Flutter – SDK für mobile Anwendungen

Ein Fachbeitrag von Christian Kutzner, Senior Software Developer

Einleitung

Für die Entwicklung von mobilen Anwendungen ist das Thema Cross-Plattform-Entwicklung seit der Veröffentlichung der ersten Smartphones präsent. Mittlerweile existiert eine Vielzahl von Frameworks, die eine Entwicklung für unterschiedliche Plattformen aus einer Codebasis ermöglichen. Mit Flutter wurde ein SDK entwickelt, welches einige moderne Konzepte der Webentwicklung in die Welt der App-Entwicklung transportiert.

Was ist Flutter?

Flutter ist ein Open Source-SDK, welches die Entwicklung von Apps für unterschiedliche Plattformen aus einer Codebasis ermöglicht. Unterstützt werden die Plattformen Android, iOS und Fuchsia. Die dabei erstellten Applikationen werden nativ auf der jeweiligen Plattform ausgeführt. Hierzu wird aus der Codebasis ein Maschinencode für die jeweilige Prozessorarchitektur kompiliert.

Entwicklung mit Flutter

Für das Flutter-SDK wird die Programmiersprache Dart verwendet. Dart ist eine Programmiersprache, die ursprünglich für den Einsatz in der Webentwicklung vorgesehen war. Dart wurde hauptsächlich von Google konzipiert und entstand konkurrierend zu TypeScript. Mit Flutter wurde auch Dart weiterentwickelt und in einem neuen Kontext eingesetzt.

Kenntnisse über objektorientierte Programmiersprachen und die deklarative Programmierung sind von Vorteil. Der Einsatz der Entwicklungswerkzeuge ist frei wählbar. Für die IDEs Visual Studio Code, Android Studio und IntelliJ existieren entsprechende Erweiterungen, die die Entwicklung mit Flutter erleichtern. Für die Entwicklung von iOS-Applikationen wird zusätzlich ein iOS-System benötigt.

Neben der kompilierten Applikation bietet das Flutter-SDK auch die Möglichkeit, eine Anwendung mithilfe der Dart Virtual Maschine auf physikalischen oder virtuellen Geräten auszuführen. Dieser Modus ist für die Entwicklung und das Debuggen der Anwendung interessant. Bei Änderungen ist es nicht nötig, einen Build der kompletten Applikation durchzuführen. Es werden nur die geänderten Programmteile aktualisiert (Hot Reload). Der Hot Reload ist nur im Debug-Modus verfügbar.