Flattern (Software) - Flutter (software)

Flattern
Google-flutter-logo.svg
Originalautor(en) Google
Entwickler Google und Community
Erstveröffentlichung Alpha (v0.0.6) / Mai 2017 ; vor 4 Jahren ( 2017-05 )
Stabile Version
2.5  Bearbeiten Sie dies auf Wikidata / 8. September 2021 ; Vor 38 Tagen ( 8. September 2021 )
Repository
Geschrieben in C , C++ , Dart
Plattform Android , iOS , Google Fuchsia , Webplattform , Linux , macOS und Windows
Typ Anwendungsrahmen
Lizenz Neue BSD-Lizenz
Webseite flattern .dev

Flutter ist ein Open-Source- UI- Software-Entwicklungskit, das von Google entwickelt wurde . Es wird verwendet, um plattformübergreifende Anwendungen für Android , iOS , Linux , Mac , Windows , Google Fuchsia und das Web aus einer einzigen Codebasis zu entwickeln .

Flutter wurde erstmals 2015 beschrieben und im Mai 2017 veröffentlicht.

Geschichte

Die erste Version von Flutter war unter dem Codenamen "Sky" bekannt und lief auf dem Android- Betriebssystem. Es wurde auf dem Dart Developer Summit 2015 mit der erklärten Absicht vorgestellt , konstant mit 120 Bildern pro Sekunde rendern zu können . Während der Keynote der Google Developer Days in Shanghai im September 2018 kündigte Google Flutter Release Preview 2 an, das letzte große Release vor Flutter 1.0. Am 4. Dezember desselben Jahres wurde Flutter 1.0 beim Flutter Live-Event veröffentlicht, was die erste "stabile" Version des Frameworks darstellt. Am 11. Dezember 2019 wurde Flutter 1.12 beim Flutter Interactive Event veröffentlicht.

Am 6. Mai 2020 wurden das Dart Software Development Kit ( SDK ) in Version 2.8 und das Flutter in Version 1.17.0 veröffentlicht, wo Unterstützung zur Metal API hinzugefügt wurde , die Leistung auf iOS-Geräten verbessert (ca. 50%), neues Material Widgets und neues Netzwerk-Tracking.

Am 3. März 2021 hat Google Flutter 2 während einer Online-Flutter Engage-Veranstaltung veröffentlicht. Dieses wichtige Update brachte offizielle Unterstützung für webbasierte Anwendungen mit dem neuen CanvasKit-Renderer und webspezifischen Widgets, Desktop-Anwendungsunterstützung für den frühen Zugriff für Windows , macOS und Linux sowie verbesserte Add-to-App- APIs . Diese Version enthielt Sound- Null-Safety , die viele wichtige Änderungen und Probleme mit vielen externen Paketen verursachte, aber das Flutter-Team enthielt auch Anweisungen, um diese Änderungen zu mildern.

Am 8. September 2021 wurde das Dart SDK in Version 2.14 und Flutter Version 2.5 von Google freigegeben. Das Update brachte Verbesserungen des Android-Vollbildmodus und der neuesten Version von Googles Material Design namens Material You. Dart hat zwei neue Updates erhalten, die neuesten Lint-Bedingungen wurden standardisiert und als Standardbedingungen voreingestellt. Dart für Apple Silicon ist nun stabil.

Framework-Architektur

Zu den Hauptkomponenten von Flutter gehören:

  • Dart- Plattform
  • Flattermotor
  • Stiftungsbibliothek
  • Designspezifische Widgets
  • Flutter-Entwicklungstools (DevTools)

Dart-Plattform

Flutter-Apps sind in der Dart- Sprache geschrieben und nutzen viele der fortgeschritteneren Funktionen der Sprache.

Unter Windows , macOS und Linux läuft Flutter in der virtuellen Dart-Maschine, die über eine Just-in-Time- Ausführungs-Engine verfügt. Beim Schreiben und Debuggen einer App verwendet Flutter die Just-In-Time-Kompilierung, die ein "Hot Reload" ermöglicht, mit dem Änderungen an Quelldateien in eine laufende Anwendung eingefügt werden können. Flutter erweitert dies um die Unterstützung von Stateful Hot Reload, bei dem Änderungen am Quellcode in den meisten Fällen sofort in der laufenden App widergespiegelt werden, ohne dass ein Neustart oder ein Zustandsverlust erforderlich ist .

Für eine bessere Leistung werden Release-Versionen von Flutter-Apps für Android und iOS mit der AOT-Kompilierung (Ahead-of-Time) kompiliert .

Flattermotor

Flutters Engine, die hauptsächlich in C++ geschrieben ist , bietet Low-Level- Rendering- Unterstützung unter Verwendung der Skia- Grafikbibliothek von Google . Darüber hinaus bietet es Schnittstellen zu plattformspezifischen SDKs, wie sie von Android und iOS bereitgestellt werden . Die Flutter Engine ist eine portable Laufzeitumgebung zum Hosten von Flutter-Anwendungen. Es implementiert die Kernbibliotheken von Flutter, einschließlich Animation und Grafiken, Datei- und Netzwerk-I/O, Unterstützung für Barrierefreiheit, Plugin-Architektur und eine Dart-Laufzeit- und Kompilierungs-Toolchain. Die meisten Entwickler interagieren mit Flutter über das Flutter Framework, das ein reaktives Framework und eine Reihe von Plattform-, Layout- und Foundation-Widgets bietet.

Stiftungsbibliothek

Die in Dart geschriebene Foundation-Bibliothek stellt grundlegende Klassen und Funktionen bereit, die zum Erstellen von Anwendungen mit Flutter verwendet werden, z. B. APIs zur Kommunikation mit der Engine.

Designspezifische Widgets

Das Flutter-Framework enthält zwei Sets von Widgets , die bestimmten Designsprachen entsprechen: Material Design- Widgets implementieren die gleichnamige Designsprache von Google und Cupertino- Widgets implementieren Apples Richtlinien für die Benutzeroberfläche von iOS .

Widgets

Flutter verwendet eine Vielzahl von Widgets, um eine voll funktionsfähige Anwendung bereitzustellen. Diese Widgets sind die Framework-Architektur von Flutter. Der Widget-Katalog von Flutter bietet eine vollständige Erklärung und API zum Framework.

Grundlagen von Widgets in Flutter

Widgets werden im Allgemeinen in drei Grundtypen definiert: zustandsbehaftete Widgets, zustandslose Widgets und vererbte Widgets. Als zentrale Klassenhierarchie im Flutter-Framework werden die drei Grundtypen von Widgets beim Aufbau jeder Flutter-Anwendung verwendet. Obwohl alle Instanzen eines Widgets unveränderlich sind , ermöglicht das Stateful-Widget die Interaktion zwischen Benutzer und Anwendung. Durch den Zugriff auf die Methode setState kann der Zustand in separaten Zustandsobjekten verwaltet werden. Alternativ fungiert das Stateless-Widget als Konstante, und bevor etwas angezeigt werden kann, muss das Widget neu erstellt werden. Das geerbte Widget funktioniert, indem es einem anderen Widget ermöglicht, den Zustand der geerbten Widgets zu abonnieren, sodass der Zustand an seine untergeordneten Elemente weitergegeben werden kann.

Siehe auch

Verweise

Externe Links