Skip to content

01. Flutter

AnleAnja edited this page Jun 7, 2020 · 2 revisions

Ziel

Flutter ist ein natives, plattformübergreifendes Framework, das 2018 von Google entwickelt wurde. Es verspricht native App Performance durch das Kompilieren von Apps für verschiedene Plattformen auf Grundlage einer einzigen Codebase. Dadurch müssen Anwendungen nur einmal geschrieben werden.

Das Programm soll auf folgenden Zielplattformen lauffähig sein:

  • WebApp
  • Android
  • iOS
  • Windows
  • Linux
  • macOS
  • Google Fuchsia

Die Programme werden für die jeweilige Zielplattform kompiliert und in einer Dart-Virtual-Machine ausgeführt. WebApps werden in JavaScript übersetzt und sind somit direkt in modernen Webbrowsern lauffähig.

Vorteile

Die essentiellen Vorteile von Flutter sind die schnelle Entwicklung, ausdrucksstarke UIs und die native Performance. Die schnelle Entwicklung wird durch einen Hot Reload Button ermöglicht, bei dem Änderungen im Code in der laufenden Anwendung nahezu sofort dargestellt werden. Ausdrucksstarke, schöne UIs werden durch Material Design und Cupertino Widgets, sowie Rich Motion APIs und ein natürliches Scrollerlebnis ermöglicht. Die native Performance wird durch Plattformbewusstsein verbessert.

Aufbau

Flutter ist in C++ geschrieben und besteht unter anderem aus der Rendering-Engine Skia sowie der Programmiersprache Dart.

Skia wird zum Zeichnen der Komponenten genutzt und baut die wichtigen Elemente von iOS und Android nach.

Dart ist die Google-eigene Programmiersprache. Sie erschien 2013 in ihrer ersten Version und hat den Anspruch einer einfachen, schnell zu erlernenden, robusten Programmiersprache für die Web- und Appentwicklung. Die Dart Syntax ähnelt C.

Dart kompiliert JIT (just in time) und AOT (ahead of time). Der JIT-Compiler ermöglicht unter anderem den Hot Reload und kompiliert nur die Dateien, die sich geändert haben. Dieser Compiler wird während der Entwicklung genutzt und funktioniert wie bei JavaScript. Der AOT-Compiler ermöglicht die Verteilung als App und kompiliert alle Abhängigkeiten ahead of time. Das Endprodukt ist dadurch schneller und insbesondere für mobile Betriebssysteme geeignet. Dieser Compiler wird für das Release genutzt.

Flutter ist ein deklaratives Framework. Das bedeutet, dass nur beschrieben wird, welches Ergebnis erzielt werden soll, nicht, wie es erzielt wird. Das wird dem Framework überlassen.

Eine Flutter Anwendung besteht aus mehreren Widgets, die in einer Baumstruktur miteinander verknüpft sind.

Clone this wiki locally