Flattern (Software)

Flattern
Google-flutter-logo.svg
Originalautor (en) Google
Entwickler (en) Google und Community
Erstveröffentlichung Alpha (V0.0.6) / Mai 2017; vor 5 Jahren[1]
Stabile Version
3.0.4Edit this on Wikidata / 1. Juli 2022; Vor 34 Tagen
Repository
Geschrieben in C, C ++, Pfeil[2]
Plattform Android, iOS, Google Fuchsia, Webplattform, Linux, Mac OS und Fenster
Typ Anwendungsrahmen
Lizenz Neue BSD -Lizenz
Webseite flattern.dev

Flattern ist ein Open Source UI Softwareentwicklungskit erstellt von Google. Es wird verwendet, um Cross -Plattform -Anwendungen für zu entwickeln Android, iOS, Linux, Mac OS, Fenster, Google Fuchsia,[3] und die Netz von einer einzigen Codebasis.[4]

Erster beschrieben im Jahr 2015,[5][6] Flutter wurde im Mai 2017 veröffentlicht.[1]

Geschichte

Die erste Version von Flutter war als "Sky" bekannt und lief auf dem Android Betriebssystem. Es wurde beim 2015 enthüllt Pfeil Entwicklergipfel[7] mit der angegebenen Absicht, dazu in der Lage zu sein machen konstant bei 120 Bilder pro Sekunde.[8] Während der Keynote von Google -Entwicklertage In Shanghai im September 2018 kündigte Google die Flutter Release Preview 2, die letzte große Veröffentlichung vor Flutter 1.0, an. Am 4. Dezember dieses Jahres wurde Flutter 1.0 beim Flutter Live -Event veröffentlicht, was die erste stabile Version des Frameworks bezeichnet. Am 11. Dezember 2019 wurde Flutter 1.12 beim Flutter Interactive Event veröffentlicht.[9]

Am 6. Mai 2020, das DART -Softwareentwicklungskit (SDK) Version 2.8 und Flutter 1.17.0 wurden veröffentlicht, was die Unterstützung für die hinzugefügt hat Metall API, die die Leistung auf iOS -Geräten um ca. 50%sowie neue Material -Widgets und Netzwerk -Tracking -Entwicklungstools verbessert.

Am 3. März 2021 veröffentlichte Google während eines Online -Flatter -Engagement -Events Flutter 2. Dieses große Update lieferte offizielle Unterstützung für webbasierte Anwendungen mit einem neuen Canvaskit-Renderer und webspezifischen Widgets. Fenster, Mac OS, und Linux und verbesserte Add-to-App Apis.[10] Diese Veröffentlichung verwendete auch DART 2.0 mit Sound Null-Safety, was viele Veränderungen und Probleme mit vielen externen Paketen verursachte; Das Flutter -Team enthielt jedoch Anweisungen und Tools zur Minderung dieser Probleme.[11]

Am 8. September 2021 wurden Dart 2.14 und Flutter 2.5 von Google veröffentlicht. Das Update führte zu Verbesserungen des Android-Vollbildmodus und der neuesten Version von Google's Material Design Sie nannte Material Sie. Dart erhielt zwei neue Updates, standardisierte Fussel Bedingungen und Markierungsunterstützung für Apfel Silizium als stabil.[12][13]

Der aktuelle stabile Kanal von Flutter beträgt 3.0.2 und die Dart -Version 2,17,3. [14]

Rahmenarchitektur

Zu den Hauptkomponenten von Flutter gehören:

  • Pfeil Plattform
  • Flatternmotor (Skia Graphics Engine)
  • Foundation Library
  • Design-spezifische Widgets
  • Flutterentwicklungswerkzeuge (Devtools)

Dart -Plattform

Flutter -Apps sind in der geschrieben Pfeil Sprache und nutzen Sie viele fortgeschrittenere Funktionen der Sprache.[15]

Während des Schreibens und Debuggens einer Anwendung läuft Flutter im Dart virtuelle Maschine, was a enthält a gerade rechtzeitig Ausführungsmaschine. Dies ermöglicht schnelle Kompilierungszeiten sowie "Hot Reload", mit denen Änderungen an Quelldateien in eine laufende Anwendung injiziert werden können. Flutter erweitert dies weiter mit Unterstützung für Staatsbürgerlich Hot Reload, wo in den meisten Fällen Änderungen des Quellcodes unmittelbar in der laufenden App reflektiert werden, ohne einen Neustart oder einen Verlust von zu erfordern Zustand.[16]

Für eine bessere Leistung verwenden Versionen von Flutter -Apps auf allen Plattformen Versionen Vorzeit (AOT) Zusammenstellung.[17]

Flatternmotor

Flutters Motor, hauptsächlich in geschrieben C ++, liefert niedrige Ebene Rendering Unterstützung der Verwendung von Google's Skia Grafikbibliothek. Zusätzlich tritt es mit der Schnittstelle mit plattformspezifisch SDKs wie diejenigen, die zur Verfügung gestellt werden von Android und iOS.[15] Der Fluttermotor ist tragbar Laufzeit zum Hosting von Flutteranwendungen. Es implementiert die Kernbibliotheken von Flutter, einschließlich Animation und Grafik, Datei- und Netzwerk -E/A, Successity -Support, Plugin -Architektur und Dart -Laufzeit und Compile Toolchain. Die meisten Entwickler interagieren mit Flutter über das Flutter -Framework, das ein reaktives Framework und eine Reihe von Plattform-, Layout- und Fundament -Widgets bietet.

Foundation Library

Die Stiftungsbibliothek, geschrieben in PfeilBietet grundlegende Klassen und Funktionen, mit denen Anwendungen mit Flatter konstruiert werden, wie z. Apis mit dem Motor kommunizieren.[15][18]

Design-spezifische Widgets

Das Flutter -Framework enthält zwei Sätze von Widgets das entspricht bestimmten Designsprachen: Material Design Widgets implementieren Google's Designsprache gleicher Name und Cupertino Widgets implementieren Apple's iOS Richtlinien für menschliche Schnittstellen.[15][19][20][21]

IDE -Unterstützung

Flutter behält die offizielle Unterstützung für Folgendes bei Ides und Redakteure über Plugins:

Andere IDEs können mit Community-unterstützten Plugins oder mit Flutter-Tools aus der Befehlszeile verwendet werden.[8]

Widgets

Flutter verwendet eine Vielzahl von Widgets, um eine voll funktionsfähige Anwendung zu liefern. Diese Widgets sind Flutters Framework -Architektur.[22] Flutters Widget -Katalog liefert eine vollständige Erklärung und API auf dem Rahmen.

Grundlagen von Widgets in Flattern

Widgets sind im Allgemeinen in drei Grundtypen definiert: Stateful Widgets, staatenlose Widgets und ererbte Widgets. Als zentrale Klasse hierarchie im Flutter -Framework werden die drei grundlegenden Arten von Widgets für die Konstruktion jeder Flutteranwendung verwendet.[23] Obwohl alle Fälle eines Widgets sind unveränderlichDas staatliche Widget ermöglicht die Interaktion zwischen Benutzer und Anwendung. Durch den Zugriff auf die Methode SetState kann der Zustand in separaten Zustandsobjekten gepflegt werden. Alternativ wirkt das staatenlose Widget als Konstante, und bevor alles angezeigt werden kann, muss das Widget neu erstellt werden. Das ererbte Widget funktioniert, indem ein anderer Widget den Ererited -Widget -Staat abonniert, sodass der Staat an seine Kinder weitergegeben werden kann.[24]

Siehe auch

Verweise

  1. ^ a b Chris Bracken. "Release v0.0.6: Rev. Alpha Branch -Version auf 0.0.6, Flattern 0.0.26 (#10010) · Flattern/Flattern". GitHub. Abgerufen 2018-08-08.
  2. ^ "FAQ - Flattern". Abgerufen 2018-08-08.
  3. ^ "Google's" Fuchsia "Smartphone OS Dumps Linux hat eine wilde neue Benutzeroberfläche.". ARS Technica. 8. Mai 2017.
  4. ^ Amadeo, Ron (2018-02-27). "Google startet mit Flutter SDK einen Push für die plattformübergreifende App-Entwicklung". ARS Technica. Abgerufen 2021-06-11.{{}}: CS1 Wartung: URL-Status (Link)
  5. ^ "Mit Flutter zielt Google Dart auf die Cross-Development Mobile App". Infoq. Abgerufen 2022-03-17.
  6. ^ "Google kündigt Flutter 1.0 an, die erste stabile Veröffentlichung seines plattformübergreifenden mobilen Entwicklungs-Toolkits". Android Police. 2018-12-05. Abgerufen 2022-03-17.
  7. ^ "Sky: Ein Experiment, das Dart für Mobile (Dart Developer Summit 2015) schreibt". Youtube.
  8. ^ a b Amadeo, Ron (1. Mai 2015). "Googles Dart-Sprache auf Android zielt auf Java-freie 120 FPS-Apps ab". ARS Technica.
  9. ^ "Flutter: Die erste UI -Plattform für Ambient Computing". Flutter -Blog. Abgerufen 2019-12-11.
  10. ^ "Version 2 des Flutter -Toolkits von Google fügt Unterstützung für Desktop- und Web -Apps hinzu". Techcrunch. Abgerufen 2021-03-06.
  11. ^ "Migration zur Nullsicherheit". Dart.dev. Abgerufen 2022-02-04.
  12. ^ Sells, Chris (2021-09-08). "Was ist neu in Flutter 2.5". Flattern. Abgerufen 2022-02-04.
  13. ^ "Flutter 2.5.0 Versionsnotizen". docs.flutter.dev. Abgerufen 2022-02-04.
  14. ^ "Flutter SDK veröffentlicht".
  15. ^ a b c d "Technischer Überblick - Flattern". Flutter.dev. Abgerufen 2017-12-13.
  16. ^ LELEL, WM (26. Februar 2018). "Warum Flutter Dart benutzt". Hackernoon. Abgerufen 5. Dezember 2018.
  17. ^ Stephenwzl (2018-08-01). "Flutters Kompilierungsmuster". Proandroiddev. Abgerufen 2018-12-06.
  18. ^ "Foundation Library - Dart API". docs.flutter.dev. Abgerufen 2017-12-13.
  19. ^ "Materialdesign -Widgets - Flattern". Flutter.dev. Abgerufen 2017-12-13.
  20. ^ "Cupertino (iOS -Stil) Widgets - Flattern". Flutter.dev. Abgerufen 2017-12-13.
  21. ^ "Richtlinien der menschlichen Schnittstelle". Entwickler.apple.com. Abgerufen 2019-10-08.
  22. ^ "Einführung in Widgets". Flutter.dev. Abgerufen 2020-10-08.
  23. ^ "Widget Class - Widgets Library - Dart -API". api.flutter.dev. Abgerufen 2021-10-04.
  24. ^ Das, Pankaj (2020-08-14). "Wie ist die Beziehung zwischen staatlichen und staatenlosen Widgets in Flattern? >> Flattern". flutteragency.com. Abgerufen 2022-06-20.

Externe Links