Flutter: Unterschied zwischen den Versionen

Aus CodicaTipps
Zur Navigation springen Zur Suche springen
Zeile 59: Zeile 59:
 
Siehe auch  
 
Siehe auch  
 
* https://codewithandrea.com/articles/parse-json-dart/
 
* https://codewithandrea.com/articles/parse-json-dart/
 +
 +
Weitere hilfreiche Libraries mit JSON
 +
* [https://pub.dev/packages/json_path json_path]
 +
* [https://pub.dev/packages/rfc_6901 rfc_6901 - JSONPointer Implementierung] - kann JSON-Strukturen bearbeiten
  
 
== Libraries ==
 
== Libraries ==

Version vom 13. Januar 2025, 16:08 Uhr


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

JSON serialization

Dart hilft beim Einpacken von Daten in JSON und dem Auspacken. Allerdings ist es nicht JavaScript oder TypeScript, das ein first-class-Handling von JSON ermöglichen.

Hilfreiche Libraries sind

  • json_serializable
  • built_value
  • deep_pick
  • equatable

Siehe auch

Weitere hilfreiche Libraries mit JSON

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