Flutter: Unterschied zwischen den Versionen
Codica (Diskussion | Beiträge) |
Codica (Diskussion | Beiträge) |
||
Zeile 46: | Zeile 46: | ||
* https://github.com/dart-lang/sdk/issues/44848 | * https://github.com/dart-lang/sdk/issues/44848 | ||
− | == UI-Libraries == | + | == Libraries == |
+ | |||
+ | === AppState-Libraries === | ||
+ | |||
+ | Sehr einfache AppState-Libraries sind | ||
+ | |||
+ | * get_it und | ||
+ | * watch_it | ||
+ | |||
+ | === UI-Libraries === | ||
* https://forui.dev/docs | * https://forui.dev/docs | ||
* https://flutter-shadcn-ui.mariuti.com/ | * https://flutter-shadcn-ui.mariuti.com/ | ||
+ | |||
+ | === Datenbank === | ||
+ | |||
+ | ==== SurrealDB ===== | ||
+ | |||
+ | [[SurrealDB]] kann mit dem Package [https://github.com/duhanbalci/surrealdb_flutter surrealdb von Duhanbalci] genutzt werden. | ||
+ | |||
+ | ===== Problem mit Websocket-Subprotokoll ===== | ||
+ | Stand Jan. 2025 gibt es noch ein Problem mit einem "Subprotokoll" der Websocket-Schnittstelle. Näheres dazu unter dem [https://github.com/duhanbalci/surrealdb_flutter/issues/26 (allerdings geschlossenen) Issue auf GitHub]. | ||
== Weiterführendes == | == Weiterführendes == |
Version vom 7. Januar 2025, 12:00 Uhr
- Flutter ist ein Open Source-Framework, um native Android-, iOS-, Linux- und Windows- sowie Web-Anwendungen zu bauen.
- mit Fluxbuilder
Als Programmiersprache wird Dart genutzt. Die Benutzerelemente sehen zwar aus wie native Elemente; sie werden aber auf Pixelbasis von den Flutter-Komponenten selbst errechnet.
Programmierparadigmen
State Management
Das State Management ist ähnlich demjenigen von React und React Native, allerdings klassenbasiert. Die neueren funktionsbasierten Hooks (useXXX) aus der React-Welt gibt es in Flutter nicht. Dafür gibt es viele ähnliche App-State-Management-Libraries, teilweise Übertragungen aus der React-Welt wie Redux und MobX.
Das State-Management erfolgt (ohne Library-Ergänzung) mit
- StatefulWidget oder
- InheritedWidget.
Man kann sich für eine App drei Schichten vorstellen:
- UI (möglichst keine Logik, keine veränderbaren Daten)
- App State-Management (nur Logik und Daten)
- Business Logic (nur Logik und Daten, Persistenz, Netzwerk-Zugriff ...)
Siehe auch
immutable state
Benütze so oft als möglich "final"!
Besonderheiten
Dateizugriff auf Media-Dateien beschränkt
Beim Auflisten des Inhalts eines Verzeichnisses erscheinen Dateien nicht. Das liegt daran, dass standardmäßig unter Android keine Berechtigungen erlaubt sind, andere Dateien als Media-Dateien (JPEG, PDF etc) zu lesen.
Man muss die Berechtigungen sowohl in die Manifest.xml eintragen als auch vom Benutzer anfordern. Siehe Permission.request in plugin permission_handler. In Frage kommen insbesondere:
- READ_MEDIA_IMAGES
- READ_MEDIA_VIDEO
- READ_MEDIA_AUDIO
oder
Siehe
Libraries
AppState-Libraries
Sehr einfache AppState-Libraries sind
- get_it und
- watch_it
UI-Libraries
Datenbank
SurrealDB =
SurrealDB kann mit dem Package surrealdb von Duhanbalci genutzt werden.
Problem mit Websocket-Subprotokoll
Stand Jan. 2025 gibt es noch ein Problem mit einem "Subprotokoll" der Websocket-Schnittstelle. Näheres dazu unter dem (allerdings geschlossenen) Issue auf GitHub.
Weiterführendes
Siehe