Flutter

Flutter ist eine Cross Plattform Technologie von Google. Sie vereinfacht den Prozess der App-Entwicklung und macht es möglich, mit einer einzigen Codebase Apps zu erstellen.
Eine Gruppe von jungen Frauen am PC
© BalanceFormCreative

Was ist Flutter?

Flutter ist ein von Google plattformübergreifendes Open-Source Framework zur Entwicklungen von Anwendungen, welches im Mai 2017 veröffentlicht wurde. Ein Framework ist ein Ordnungsrahmen, unter dem eine Software durch einen zusätzlichen Code selektiv verändert werden kann, so dass eine anwendungsspezifische Software entsteht. Ein Code, oder auch Programmcode genannt, ist eine Anweisung, welche ein Computerprogramm in einer bestimmten Programmiersprache schreiben lässt.

Mithilfe von Flutter können Entwickler Anwendungen für den Desktop und mobile Endgeräte mit nur eine Codebase für die Betriebssysteme iOS, Android, macOS, Windows, Linux und Google Fuchsia programmieren. In der Softwareentwicklung ist eine Codebase eine Sammlung von Quellcodes, die zur Erstellung eines bestimmten Softwaresystems, einer Anwendung oder einer Softwarekomponente verwendet wird.

Der Fokus von Flutter liegt vor allem auf schneller Ausführungsgeschwindigkeit und kurzen Entwicklungszeiten. Damit eignet sich Flutter besonders für die Erstellung eines Funktionsprototypen, die Modulentwicklung, Ideen mit First-Mover-Advantage und Anwendungen mit überschaubarem Umfang. Ein First-Mover-Advantage ist ein Wettbewerbsvorsprung, der bei einem Markteintritt als Pionier entsteht.

Geschichte

Flutter ist 2015 aus einem Experiment des Google Chrome Teams entstanden. Die Software wurde das erste Mal auf dem Dart-Entwickler-Gipfel 2015 von Google vorgestellt, mit der erklärten Absicht, konsistent mit 120 Bildern pro Sekunde rendern zu können, wenn die Hardware schnell genug wäre. Rendering bzw. Rendern bedeutet auf Deutsch Bildsynthese und beschreibt den Vorgang der Erstellung von Bildern oder Grafiken aus Rohdaten.

Zum Zeitpunkt des Release der Beta Version im Jahr 2017 war Flutter nur für zwei Plattformen erhältlich, Android und iOS. Zur damaligen Zeit war die Technologie noch unter dem Namen „Sky“ bekannt und wurde nur von Google für kommerzielle Projekte verwendet. Während der Google Developer Days 2018 in Shanghai kündigte Google die Flutter Release Preview 2 an, welche noch am Ende des Jahres als Flutter 1.0 veröffentlicht wurde.

Seit Dezember 2019 ist Flutter 1.22 erhältlich, nachdem es auf dem Flutter Interactive Event vorgestellt wurde. Mit dem Stable Release wurde die Software dann auch für andere Betriebssysteme zugänglich. Im Mai 2020 wurde Flutter 1.17.0 sowie das Dart-SDK (Software Development Kit) in der Version 2.8 veröffentlicht. SDK ist eine Sammlung von Software-Programmierwerkzeugen für die Erstellung von Anwendungen. Die aktuelle Version vom Dezember 2020 ist Flutter 1.22.5.

Programmiersprache Dart

Flutter Apps werden in der Programmiersprache Dart geschrieben. Dart ist eine Programmiersprache für Apps auf mehreren Plattformen. Sie wurde von Google entwickelt und dient zum Erstellen von Mobil-, Desktop-, Web- und Serveranwendungen. Dart wurde auf der GOTO-Konferenz, einer Konferenz für Software Development, in Aarhus, Dänemark im Oktober 2011 zum ersten Mal vorgestellt. Das Projekt wurde von den Programmierern Lars Bak und Kasper Lund gegründet. Dart 1.0 wurde am 14. November 2013 veröffentlicht.

Architektur

Die Architektur Flutters ist als erweiterbares, geschichtetes System konzipiert. Es besteht aus einer Reihe unabhängiger Bibliotheken, die jeweils von der darunter liegenden Schicht abhängen. In der Informatik ist eine Bibliothek eine Sammlung von Ressourcen, die von Computerprogrammen verwendet werden, oft zur Softwareentwicklung. Keine Schicht der Architektur hat privilegierten Zugriff auf die darunter liegende Schicht, und jeder Teil der Framework-Ebene ist so konzipiert, dass er optional und austauschbar ist.

Die Architektur besteht aus dem Dart Framework und einer Engine, die durch einen Embedder verwaltet wird.

Framework

Eine Framework Architektur (engl. für Rahmenstruktur) ist eine Struktur, die eine einheitliche Basis für die Beschreibung von verschiedenen Systemarchitekturen bildet. Bei Flutter werden mithilfe der Framework Architektur Organisations- und Technologieentwicklungen verbunden.

Normalerweise interagieren Entwickler mit Flutter über das Flutter-Framework. Es enthält einen umfangreichen Satz von Plattform-, Layout- und grundlegenden Bibliotheken, die aus einer Reihe von Schichten bestehen. Es ist in der Programmiersprache Dart geschrieben.

Das Flutter-Framework ist relativ klein. Viele Funktionen auf höherer Ebene, die Entwickler verwenden könnten, sind als Pakete implementiert, beispielsweise Kamera und plattformunabhängige Funktionen wie Zeichen und Animationen, die auf den Kernbibliotheken von Dart und Flutter aufbauen.

Engine

Die Flutter-Engine ist die Laufzeitumgebung zum Hosten im Web von Flutter Anwendungen. Hosten wird auch als Bereitstellung von Speicherplatz auf einem Server definiert.

Die Engine ist hauptsächlich in der Programmiersprache C++ geschrieben. C++ ist eine allgemeine Programmiersprache, die von Bjarne Stroustrup, ein dänischer Informatiker, als Erweiterung der Programmiersprache C entwickelt wurde. C++ gehört zu den verbreitetsten Programmiersprachen weltweit und wird überwiegend in der Anwendungsentwicklung eingesetzt.

Die Flutter-Engine beinhaltet viele Komponenten, welche für die Funktionalität der Softwares und alle grundlegenden Bereiche wesentlich sind. Dazu gehören zum Beispiel Shells, eine Software, mit der ein Nutzer zusammen mit einem Betriebssystem interagieren kann oder die Grafikbibliothek Skia, die eine Low-Level-Rendering-Unterstützung anbietet. Aufgrund des Low-Level-Renderings werden Benutzern mehr Verantwortung über die Verwaltung des Ressourcenspeichers überlassen.

Embedder

Der Embedder ist plattformspezifisch und der Einstiegspunkt, um koordiniert den Zugriff auf Dienste wie Barrierefreiheit zu ermöglichen. Außerdem verwaltet er die Nachrichten Ereignisschleife. In der Informatik ist die Ereignisschleife ein Programmierkonstrukt oder Entwurfsmuster, das auf Ereignisse oder Nachrichten in einem Programm wartet und diese weiterleitet.

Der Embedder bewirkt, dass native Codes kompiliert werden und Flutter Apps performance-mäßig mit native Apps, die als mobile App speziell für das Betriebssystem eines mobilen Endgeräts entwickelt werden, gleichziehen. Ein nativer Code ist ein Programmiercode, der für die Ausführung auf einem bestimmten Prozessor konfiguriert ist. Der Embedder wird in einer Sprache geschrieben, die für die jeweilige Plattform geeignet ist: derzeit JavaScript und C++ für Android, Objective-C/Objective-C++ für iOS und macOS und C++ für Windows und Linux. Objective-C ist eine allgemeine, objektorientierte Programmiersprache, die die Programmiersprache C um eine Smalltalk-ähnliche Nachrichtenübermittlung erweitert.

Widgets

Ein Widget ist ein Programm auf grafischen Benutzeroberflächen, das interaktiv genutzt werden kann. Es gehört zu den wichtigsten Elementen in einer Flutter-Anwendung. Widgets steuern und beeinflussen nicht nur, wie sich die Ansichten verhalten, sondern verarbeiten und reagieren auch auf die Aktionen des Benutzers. Jedes Element einer App kann dadurch verändert und angepasst werden. Daher ist es von entscheidender Bedeutung, dass ein Widget schnell arbeitet.

Flutter stellt eigene Widgets bereit, anstatt auf Existierende zurückzugreifen. Das bedeutet, dass Flutter als Plattform entscheiden kann, wann und wie die Widgets gerendert werden. Programme können jedoch auch ohne Widgets installiert werden, indem direkt auf das Canvas gezeichnet wird.

Anwendungsbeispiele

Ein Beispiel für eine App, die mit Flutter erstellt wurde, ist die Google Ads-App. Google Ads ist eine New Ad Manager App, die ebenfalls von Google entwickelt wurde. Kunden können mit der Anwendung Kampagnenstatistiken einsehen, Gebote und Budgets aktualisieren, Echtzeitwarnungen und Benachrichtigungen erhalten, einen Google-Experten anrufen oder auf Vorschläge zur Verbesserung ihrer Kampagnen reagieren.

KlasterMe

Ebenso wurde KlasterMe mit Flutter entwickelt. Mit der Social Media App können Nutzer verschiedene Formen von Inhalten, beispielsweise Bilder und Artikel, erstellen, teilen und entdecken. Außerdem kann ein Benutzer eine Seite erstellen, um seine Inhalte zu präsentieren und in der Community anerkannt zu werden.

Alibaba.com

Alibaba.com ist die größte Online Handelsplattform der Welt. Die Webseite wurde 1999 von Jack Ma, einem chinesischen Geschäftsmann, gegründet und gehört zu dem chinesischen Unternehmen Alibaba Group. Die dazugehörige App wurde mit Flutter entwickelt. Mehr als 10 Millionen Nutzer verwenden diese App jeden Tag.

Realtor.com

Realtor.com ist eine US-amerikanische Plattform für die Suche und Vermietung von Wohnungen und Häusern. Die Website gehört mit ungefähr 68 Millionen aktiven Nutzer pro Monat zu den größten Immobilien-Website der Vereinigten Staaten. Das Team von Realtor.com integrierte Flutter in iOS- und Android Apps, um nahtlose UI-Erlebnisse zu liefern und gleichzeitig die Entwicklererfahrung zu verbessern.

Vorteile

Ein Vorteil von Flutter ist, dass Die Programmiersprache Dart weist in grundlegenden Entwicklungs-Mechaniken viele Ähnlichkeiten zu anderen Sprachen auf. Flutter und Dart wurden beide von Google entwickelt, weshalb sie gezielt aufeinander aufbauen und die Entwicklung erheblich beschleunigen. Das wiederum macht Flutter aber stark abhängig von seinem Erfinder.

Sowohl Flutter als auch Dart sind Open-Source. Damit kann der Quellcode öffentlich eingesehen und verändert werden. Außerdem ist Flutter frei verwendbar und bietet eine umfangreiche Dokumentation und Community-Support, um bei Problemen zu helfen.

Die Kernelemente der User-Experience wie beispielsweise Tab-Leiste, Button oder Navigation sind feste Bestandteile der Software und müssen nicht vorab entwickelt werden.

Ausblick

Eine Studie von Statista aus dem Jahr 2020 zeigt einen Anstieg der Benutzung von Flutter an. Während im Jahr 2019 30% der Softwareentwickler mit Flutter arbeiteten, stieg die Anzahl 2020 auf 39%. Damit ist Flutter nach React Native das zweitmeist genutzte Open Source Framework. React Native ist ein JavaScript-Framework von Facebook zur Programmierung von mobilen Anwendungen für iOS, Android, Windows und das Web.

Bei den Google Trends hat Flutter 2021 offiziell React Native als das meistgesuchte Framework abgelöst.

TenMedia – Softwareagentur in Berlin

TenMedia ist eine dynamische Webagentur mit Sitz in Berlin Mitte zwischen Alexanderplatz und Rosa-Luxemburg-Platz. Seit 2011 liegt unser Fokus auf App-Entwicklung, Entwicklung von Individualsoftware, Datenbanken, Online-Plattformen und Cloudanwendungen. Neben unseren verschiedenen eigenen Projekten entwickeln wir auch individuell angepasste Web- und Softwarelösungen genau nach Kundenauftrag und benutzen dafür modernste Technologie.

Für Fragen und Anfragen sind wir jeder Zeit per E-Mail, telefonisch oder persönlich in unserem Office in Berlin erreichbar. Wir freuen uns!