More
Wie man Datenverarbeitung in Flutter mit List.generate und Back4app verwendet
11 min
einführung in flutter ist der einfachste weg zur dynamischen listen erstellung die verwendung von list generate es hilft besonders beim umgang mit daten, die über einen backend service wie back4app abgerufen werden ob es sich um dynamische ui elemente, die verarbeitung mehrerer dateneinträge oder die optimierung von netzwerk anfragen handelt, list generate wird zumindest ihren code erleichtern und die leistung steigern in diesem tutorial werden wir sehen, wie man die backend daten effizient mit list generate in flutter verarbeitet in diesem beispiel werden sie sehen, wie man eine einfache flutter anwendung mit back4app erstellt, um benutzerbewertungen dynamisch abzurufen und anzuzeigen und sie dabei zu bewerten sie werden lernen, wie man backend daten verarbeitet, netzwerk anfragen optimiert und batch operationen mit list generate voraussetzungen um dieses tutorial abzuschließen, benötigen sie ein back4app konto melden sie sich für ein kostenloses konto an unter back4app com https //www back4app com eine flutter entwicklungsumgebung, die auf ihrem lokalen computer eingerichtet ist folgen sie der flutter installationsanleitung https //flutter dev/docs/get started/install , wenn sie sie noch nicht eingerichtet haben grundkenntnisse in dart, flutter widgets und asynchroner programmierung schritt 1 – einrichten ihres back4app backends erstellen sie ein back4app projekt melden sie sich bei ihrem back4app konto https //dashboard back4app com/ an und erstellen sie ein neues projekt erstellen sie eine parse klasse erstellen sie in ihrem back4app projekt eine neue parse klasse mit dem namen review diese klasse speichert benutzerbewertungen für verschiedene artikel (z b produkte, filme usw ) fügen sie die folgenden felder hinzu benutzername (string) der name des benutzers, der die bewertung abgegeben hat bewertung (zahl) die bewertung, die der benutzer abgegeben hat, typischerweise ein wert zwischen 1 und 5 kommentar (string) der bewertungstext oder kommentar beispieldaten hinzufügen füllen sie die review klasse mit beispieldaten, die sie in ihrer flutter app verwenden können holen sie sich ihre back4app anmeldeinformationen navigieren sie zu ihren projekteinstellungen, um ihre anwendungs id und ihren client schlüssel abzurufen, die sie benötigen, um ihre flutter app mit back4app zu verbinden schritt 2 – einrichten ihres flutter projekts erstellen sie ein neues flutter projekt öffnen sie ihr terminal oder die eingabeaufforderung und führen sie aus abhängigkeiten hinzufügen öffnen sie pubspec yaml und fügen sie die folgenden abhängigkeiten hinzu initialisieren sie parse in ihrer app in lib/main dart , importieren sie das parse sdk und initialisieren sie es in der main funktion import 'package\ flutter/material dart'; import 'package\ parse server sdk flutter/parse server sdk flutter dart'; void main() async { widgetsflutterbinding ensureinitialized(); const keyapplicationid = 'your back4app app id'; const keyclientkey = 'your back4app client key'; const keyparseserverurl = 'https //parseapi back4app com'; await parse() initialize(keyapplicationid, keyparseserverurl, clientkey keyclientkey, autosendsessionid true); runapp(myapp()); } class myapp extends statelesswidget { @override widget build(buildcontext context) { return materialapp( home reviewscreen(), ); } } ersetzen sie 'your back4app app id' und 'your back4app client key' durch ihre tatsächlichen back4app anmeldeinformationen schritt 3 – daten abrufen und mit list generate anzeigen erstellen sie das reviewscreen widget in lib/main dart , fügen sie ein neues widget hinzu, das bewertungen von back4app abruft und sie mit list generate class reviewscreen extends statefulwidget { @override reviewscreenstate createstate() => reviewscreenstate(); } class reviewscreenstate extends state\<reviewscreen> { list\<parseobject>? reviews; @override void initstate() { super initstate(); fetchreviews(); } future\<void> fetchreviews() async { final query = querybuilder\<parseobject>(parseobject('review')); final response = await query query(); if (response success && response results != null) { setstate(() { reviews = response results as list\<parseobject>; }); } } @override widget build(buildcontext context) { return scaffold( appbar appbar(title text('user reviews')), body reviews == null ? center(child circularprogressindicator()) listview\ builder( itemcount reviews! length, itembuilder (context, index) { final review = reviews!\[index]; return reviewtile( username review\ get\<string>('username') ?? 'anonymous', rating review\ get\<int>('rating') ?? 0, comment review\ get\<string>('comment') ?? '', ); }, ), ); } } class reviewtile extends statelesswidget { final string username; final int rating; final string comment; reviewtile({required this username, required this rating, required this comment}); @override widget build(buildcontext context) { return card( margin edgeinsets symmetric(vertical 10, horizontal 15), child padding( padding const edgeinsets all(15 0), child column( crossaxisalignment crossaxisalignment start, children \[ text( username, style textstyle(fontweight fontweight bold), ), sizedbox(height 5), row( children list generate(5, (index) { return icon( index < rating ? icons star icons star border, color colors amber, ); }), ), sizedbox(height 10), text(comment), ], ), ), ); } } in diesem beispiel ist reviewtile ein benutzerdefiniertes widget, das die bewertung eines benutzers anzeigt die sternebewertung wird dynamisch mit list generate , wodurch eine reihe von sternsymbolen basierend auf dem rating wert erstellt wird, der vom backend abgerufen wird schritt 4 – optimierung des datenabrufs mit list generate und future wait in fällen, in denen sie daten von mehreren backend endpunkten gleichzeitig abrufen müssen, können sie list generate in kombination mit future wait verwenden, um den prozess zu optimieren abrufen mehrerer verwandter datensätze stellen sie sich vor, sie haben eine andere klasse namens product und möchten verwandte bewertungen für mehrere produkte gleichzeitig abrufen sie können list generate verwenden, um diese anfragen gleichzeitig zu starten future\<void> fetchmultipleproductsreviews(list\<string> productids) async { list\<future\<list\<parseobject>>> requests = list generate(productids length, (index) { final query = querybuilder\<parseobject>(parseobject('review')) whereequalto('productid', productids\[index]); return query query() then((response) => response results as list\<parseobject>); }); list\<list\<parseobject>> allreviews = await future wait(requests); setstate(() { allproductreviews = allreviews; }); } dieser ansatz reduziert die gesamtwartezeit, indem daten für alle produkte gleichzeitig abgerufen werden schritt 5 – durchführung von batch operationen mit list generate wenn sie batch aktualisierungen oder löschungen für mehrere datensätze durchführen müssen, die vom backend abgerufen wurden, kann list generate den prozess vereinfachen beispiel für eine batch aktualisierung so könnten sie den status mehrerer datensätze auf einmal aktualisieren future\<void> updatemultiplereviews(list\<string> reviewids, string newstatus) async { list\<future\<parseobject>> updaterequests = list generate(reviewids length, (index) { parseobject review = parseobject('review') objectid = reviewids\[index]; review\ set('status', newstatus); return review\ save(); }); await future wait(updaterequests); print('all reviews updated'); } die verwendung von list generate hier ermöglicht es ihnen, effizient operationen an einer großen anzahl von datensätzen in einer einzigen operation durchzuführen schritt 6 – testen und ausführen ihrer app führen sie ihre app mit flutter run aus sie sollten eine liste von benutzerbewertungen sehen, wobei jede bewertung eine dynamisch generierte sternebewertung mit list generate wenn sie die batch operationen und das multi fetch beispiel implementiert haben, testen sie auch diese szenarien, um sicherzustellen, dass alles korrekt funktioniert fazit in diesem tutorial haben sie gelernt, wie sie list generate in flutter verwenden, um daten, die von einem backend wie back4app abgerufen werden, effizient zu verarbeiten und anzuzeigen durch die verwendung von list generate , können sie dynamische ui elemente erstellen, das abrufen von daten optimieren und batch operationen auf eine saubere und wartbare weise durchführen dieser ansatz verbessert nicht nur die leistung ihrer app, sondern hält auch ihren code sauber und leicht zu verwalten für weitere informationen zur verwendung von back4app mit flutter, schauen sie sich die back4app flutter dokumentation https //www back4app com/docs/flutter/overview viel spaß beim programmieren!