Flutter
Flutter ist ein Framework zur Entwicklung grafischer Applikationen in Dart, welche auf den folgenden Plattformen lauffähig sind:
- in Webbrowsern
- als native Apps auf den Mobil-Betriebssystemen Android und iOS
- als native Applikationen auf den Desktop-Betriebssystemen Linux, macOS und Windows
Cross-Kompilierung nativer Flutter Applikationen ist nicht möglich.
Diskussion
Chancen:
Risiken:
- Google könnte sein Engagement in Flutter und/oder Dart reduzieren oder beenden.
- Flutter könnte nicht oder nicht schnell genug an Veränderungen in und Bugs auf der jeweiligen Plattform angepasst werden.
- Die Performance komplexer Applikationen könnte unbefriedigend sein.
Flutter Widgets:
- Widgets können in Aussehen und Verhalten von der zugrundeliegenden Plattform abweichen, insbesondere bzgl. Scrolling und Accessibility.
- In Web-Applikationen kann bei Verwendung des CanvasKit Renderers, der DOM-Baum nicht abgefragt oder verändert werden, z.B. durch Suche, Webscraping oder Adblocker. Der Web Renderer wird evtl. nicht mehr weitergeführt.
- Dart muss im Frontend verwendet werden
Architektur
Flutter Applikationen werden mit dem Flutter Framework in Dart entwickelt.
Die Flutter Widgets sind ebenfalls in Dart implementiert. Die Flutter Engine rendert die Widgets mittels Skia oder Impeller und bildet die Schnittstelle zur zugrundeliegenden Plattform.
Das Programmiermodell ist reaktiv:
- Die von
widgets.Widget abgeleiteten Klassen stellen lediglich unveränderliche Konfigurationen der Widgets dar. - Die tatsächlichen Widget-Objekte sind Instanzen der von
widgets.Element abgeleiteten Klassen. Sie werden durch Aufruf der zugehörigen Widget.createElement() Methode erzeugt. - Layouting und Rendering der Widgets erfolgen durch Instanzen von Klassen, die von
widgets.RenderObject abgeleitet sind. Sie werden durch Aufruf der zugehörigen Element.renderObject() Methode erzeugt.
TODO : Veränderung Widget.canUpdate() updateRenderObject()
TODO minimiert Garbage Collection: Objekte bleiben erhalten, Objekte sind klein, da sie wenig Verantwortung haben https://medium.com/flutter/flutter-dont-fear-the-garbage-collector-d69b3ff1ca30
Benutzung
TODO
StatelessWidget
StatefulWidget
RenderObjectElement
Software, die Flutter verwendet
- Desktop Apps: AppFlowy.IO, AuthPass, Dart & Flutter DevTools, Flokk, Flutter Widget Inspector, Gimel Studio, Harmonoid, Invoice Ninja App, QuikFlow, Rive, Shortcut Keeper, Superlist, Ubuntu Desktop Installer, Weatherian, Wonderous
- Mobile Apps: AuthPass, Epic Ride Weather, Every Door, GitJournal, Google Earth, Google NotebookLM, Helm, inKino, Insight Timer, Invoice Ninja App, My BMW, Reflectly, Rive, Rosbank Business App, Superlist, Time Cop, Tonal, Wonderous
- in Rust: Save Our Secrets
Alle Angaben ohne Gewähr • Home • Kontakt