FutureBuilder Logik bei Interaktion mit DB verbessern #80

Closed
opened 2025-12-06 11:05:45 +00:00 by sneeex · 1 comment
Owner

Enhancement

Aktuelles Verhalten

Teilweise sind die Futures die in den FutureBuildern genutzt werden nicht abhängig vom Connectionstate, außerdem wird immer die 250ms gewartet und nicht nur wenn die DB selber nicht auf 250ms kommt.

Einschränkungen/Probleme

Warum sollte man einen FutureBuilder nutzen, wenn man den ConnectionState dann selber nachbaut? Außerdem hat das selber implementieren beim GameHistoryView irgendwie zu einem Skeleton UI Bug geführt.
Ebenfalls führt der unkluge Einsatz vom Delay dazu, dass länger gewartet wird, als UI technisch eigentlich nötig ist. Wenn man das ändert lässt sich der Delay ausserdem einheitlicher gestalten, wenn die DB schneller ist.

Vorgeschlagene Verbesserung

IsLoading's abhängig vom ConnectionState machen
Delay so einbauen, dass er nur genutzt wird, wenn die DB langsamer als Xms (bspw. 250ms) ist und sonst nicht noch extra gewartet wird.

_exampleListFuture = Future.wait([
  db.exampleDao.getExample(),
  Future.delayed(const Duration(milliseconds: 250)), 
]).then((results) => results[0] as List<Example>);
# Enhancement ## Aktuelles Verhalten Teilweise sind die Futures die in den FutureBuildern genutzt werden nicht abhängig vom Connectionstate, außerdem wird immer die 250ms gewartet und nicht nur wenn die DB selber nicht auf 250ms kommt. ## Einschränkungen/Probleme Warum sollte man einen FutureBuilder nutzen, wenn man den ConnectionState dann selber nachbaut? Außerdem hat das selber implementieren beim GameHistoryView irgendwie zu einem Skeleton UI Bug geführt. Ebenfalls führt der unkluge Einsatz vom Delay dazu, dass länger gewartet wird, als UI technisch eigentlich nötig ist. Wenn man das ändert lässt sich der Delay ausserdem einheitlicher gestalten, wenn die DB schneller ist. ## Vorgeschlagene Verbesserung IsLoading's abhängig vom ConnectionState machen Delay so einbauen, dass er nur genutzt wird, wenn die DB langsamer als Xms (bspw. 250ms) ist und sonst nicht noch extra gewartet wird. ``` _exampleListFuture = Future.wait([ db.exampleDao.getExample(), Future.delayed(const Duration(milliseconds: 250)), ]).then((results) => results[0] as List<Example>); ```
sneeex changed title from FutureBuilder Logik bei Interaktion mit DB Verbessern to FutureBuilder Logik bei Interaktion mit DB verbessern 2025-12-06 11:05:53 +00:00
sneeex added the
Layer
FE
Priority
Low
4
labels 2025-12-06 11:11:12 +00:00
Owner

Der Delay soll als Konstante in einer constants.dart im core/-Folder abgelegt werden, damit er zentral verändert werden kann

Der Delay soll als Konstante in einer `constants.dart` im `core/`-Folder abgelegt werden, damit er zentral verändert werden kann
flixcoo added the
Task
Enhancement
label 2025-12-06 15:53:39 +00:00
flixcoo added a new dependency 2025-12-06 16:26:30 +00:00
sneeex self-assigned this 2025-12-15 18:53:13 +00:00
flixcoo added this to the Alpha milestone 2025-12-15 18:53:39 +00:00
flixcoo modified the milestone from Alpha to Minimum Viable Product (MVP) 2025-12-15 18:53:56 +00:00
Sign in to join this conversation.
2 Participants
Notifications
Due Date
No due date set.
Depends on
#67 CreateGameView erstellen
liquid-development/game-tracker
Reference: liquid-development/game-tracker#80