More
Wie man asynchrone Operationen in Flutter mit Future.wait und Back4app optimiert
7 min
einführung asynchrone programmierung ist in der modernen app entwicklung unerlässlich, insbesondere bei aufgaben wie dem abrufen von daten aus mehreren quellen oder dem durchführen mehrerer netzwerkaufrufe das effiziente handhaben mehrerer asynchroner aufrufe kann jedoch herausfordernd sein in flutter bietet die future wait methode eine leistungsstarke möglichkeit, mehrere futures , sodass ihre app mehrere asynchrone operationen gleichzeitig und effizient abwarten kann in diesem tutorial lernen sie, wie sie future wait in flutter verwenden, um die leistung ihrer app beim umgang mit mehreren asynchronen aufgaben zu optimieren wir werden diese technik mit back4app integrieren, wo sie gleichzeitige datenabrufe von ihrem backend durchführen, die ergebnisse speichern und die wartezeit für ihre benutzer erheblich reduzieren können voraussetzungen um dieses tutorial abzuschließen, benötigen sie ein back4app konto melden sie sich für ein kostenloses konto unter back4app com https //www back4app com an einrichtung der flutter entwicklungsumgebung auf ihrem lokalen rechner folgen sie der flutter installationsanleitung https //flutter dev/docs/get started/install , wenn sie dies noch nicht eingerichtet haben grundkenntnisse der asynchronen programmierung in flutter und wie man back4app als backend service verwendet wenn sie neu bei back4app sind, schauen sie sich die einführung in back4app https //www back4app com/docs/get started/welcome an 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 die task klasse sollte die felder haben name (string) und completed (boolean) die project klasse sollte die felder haben title (string) und description (string) fügen sie beispieldaten hinzu füllen sie diese klassen mit beispieldaten, die wir gleichzeitig mit future wait in unserer flutter app abrufen werden 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 ihre eingabeaufforderung und führen sie aus fügen sie abhängigkeiten hinzu öffnen sie pubspec yaml und fügen sie die folgenden abhängigkeiten hinzu initialisieren sie parse in ihrer app importieren sie in lib/main dart , das parse sdk und initialisieren sie es in der main funktion 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()); ersetzen sie 'your back4app app id' und 'your back4app client key' durch ihre tatsächlichen back4app anmeldeinformationen schritt 3 – daten gleichzeitig mit future wait erstellen sie das taskprojectscreen widget in lib/main dart , fügen sie ein neues widget hinzu, das daten sowohl aus der task als auch aus der project klasse gleichzeitig abruft class taskprojectscreen extends statefulwidget { @override taskprojectscreenstate createstate() => taskprojectscreenstate(); } class taskprojectscreenstate extends state\<taskprojectscreen> { list\<parseobject>? tasks; list\<parseobject>? projects; string? errormessage; @override void initstate() { super initstate(); fetchdata(); } future\<void> fetchdata() async { try { // fetch tasks and projects concurrently final futures = \[ gettasks(), getprojects(), ]; final results = await future wait(futures); setstate(() { tasks = results\[0] as list\<parseobject>; projects = results\[1] as list\<parseobject>; }); } catch (e) { setstate(() { errormessage = e tostring(); }); } } future\<list\<parseobject>> gettasks() async { final query = querybuilder\<parseobject>(parseobject('task')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load tasks'); } } future\<list\<parseobject>> getprojects() async { final query = querybuilder\<parseobject>(parseobject('project')); final response = await query query(); if (response success && response results != null) { return response results as list\<parseobject>; } else { throw exception('failed to load projects'); } } @override widget build(buildcontext context) { if (errormessage != null) { return center(child text('error $errormessage')); } if (tasks == null || projects == null) { return center(child circularprogressindicator()); } return listview( children \[ listtile(title text('tasks')), tasks! map((task) => listtile( title text(task get\<string>('name') ?? 'no name'), subtitle text('completed ${task get\<bool>('completed') ? 'yes' 'no'}'), )), listtile(title text('projects')), projects! map((project) => listtile( title text(project get\<string>('title') ?? 'no title'), subtitle text(project get\<string>('description') ?? 'no description'), )), ], ); } } dieses widget ruft aufgaben und projekte gleichzeitig mit future wait , wodurch die gesamte wartezeit verkürzt wird, da beide anfragen gleichzeitig bearbeitet werden schritt 4 – testen und ausführen ihrer app führen sie ihre app mit flutter run sie sollten eine liste von aufgaben und projekten auf dem bildschirm sehen beide datensätze werden gleichzeitig abgerufen, was den datenabruf schneller und effizienter macht fazit in diesem tutorial haben sie gelernt, wie sie future wait verwenden, um asynchrone operationen in ihrer flutter app zu optimieren durch das gleichzeitige abrufen von daten aus mehreren quellen und die integration mit back4app haben sie ihre app reaktionsschneller gemacht und die gesamtwartezeit für ihre benutzer reduziert die verwendung von future wait in kombination mit einem robusten backend wie back4app ermöglicht es ihnen, mehrere asynchrone aufgaben effizient zu verwalten und die leistung ihrer flutter anwendungen zu verbessern 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!