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!