Zeile 5: |
Zeile 5: |
| | | |
| Als Programmiersprache wird [[Dart]] genutzt. Die Benutzerelemente sehen zwar aus wie native Elemente; sie werden aber auf Pixelbasis von den Flutter-Komponenten selbst errechnet. | | Als Programmiersprache wird [[Dart]] genutzt. Die Benutzerelemente sehen zwar aus wie native Elemente; sie werden aber auf Pixelbasis von den Flutter-Komponenten selbst errechnet. |
| + | |
| + | == Projektstruktur == |
| + | |
| + | Zur grundsätzlichen Struktur eines Dart-Projekts (package) siehe |
| + | * https://dart.dev/tools/pub/create-packages |
| + | * https://dart.dev/tools/pub/package-layout |
| + | |
| + | Ein Package umfasst ein oder mehrere Libraries. Eine Library ist üblicherweise ein Dart-File (Ausnahme: Einbindung anderern [generierter] Dateien mittels <code>part</code>-Direktive). |
| + | Libraries im lib/-Verzeichnis sind public, wogegen solche im lib/src-Verzeichnis privat sind. |
| + | |
| + | Wenn man Flutter benutzt kann man die Struktur durch |
| + | flutter create |
| + | erzeugen lassen. |
| | | |
| == Programmierparadigmen == | | == Programmierparadigmen == |
Zeile 94: |
Zeile 107: |
| | | |
| * Couchbase Lite | | * Couchbase Lite |
− | ** cbl_dart | + | ** [https://pub.dev/packages/cbl_flutter cbl_dart] - alle Plattformen außer Web |
| + | ** [https://pub.dev/packages/cbl_flutter cbl_flutter] nur für Android |
| + | |
| | | |
| * [https://pub.dev/documentation/wilt/latest/wilt/Wilt-class.html Wilt] - CouchDB client for server and flutter-based mobile | | * [https://pub.dev/documentation/wilt/latest/wilt/Wilt-class.html Wilt] - CouchDB client for server and flutter-based mobile |
| + | * [https://pub.dev/packages/sporran Sporran] basiert auf Wilt, kann aber auch lokal arbeiten und wie [[PouchDB]] mit einer entfernten Instanz synchronisieren. Wohl nur für Web-Plattform. |
| + | |
| + | ==== Weitere Datenbanken ==== |
| + | |
| + | * [[Sembast]] |
| + | * sqflite - SQLLite für Flutter |
| + | * Floor - basiert auf sqflite |
| + | ** https://quashbugs.com/blog/exploring-flutters-floor-library-for-efficient-data-persistence |
| + | * Hive |
| + | |
| + | |
| + | === Offline-First === |
| + | |
| + | Insbesondere mobile Apps müssen damit zurechtkommen, dass Datenänderungen nicht sofort zum zentralen Server oder zum Client kommen. Auch dafür gibt |
| + | es Libraries, die helfen, wenn die Datenbank das nicht selbst tut (z.B. bei [[PouchDB]]): |
| + | |
| + | * [ https://pub.dev/packages/fast_sync_hive_dao FastSync] |
| + | ** https://pub.dev/packages/fast_sync_client |
| + | * https://code.zeba.academy/offline-apps-flutter-syncing-data-handling-connectivity-issues/ - Anleitung mit Hilfe der lokalen Datenbank [[Sembast]] |
| + | * https://www.powersync.com/blog/flutter-tutorial-building-an-offline-first-chat-app-with-supabase-and-powersync - Anleitung mit Hilfe von SQLite, Supabase und PowerSync |
| + | * https://flutterdata.dev/ |
| + | ** https://github.com/flutterdata/flutter_data |
| | | |
| == Weiterführendes == | | == Weiterführendes == |