Recent, am lucrat cu fluxuri și BLoC-uri în Flutter pentru a prelua și afișa date dintr-o bază de date SQLite. Ce-i drept, mi-a luat foarte mult timp să le dau sens. Acestea fiind spuse, aș dori să trec peste toate acestea în speranța că veți pleca simțindu-vă încrezători în a le folosi în propriile aplicații. Voi intra în cât mai multă profunzime posibil și explic totul cât mai simplu posibil.

În această postare, vom crea o aplicație simplă de la început până la sfârșit care utilizează fluxuri, BLoC și o bază de date SQLite. Această aplicație ne va permite să creăm, să modificăm și să ștergem note. Dacă nu ați făcut-o încă, creați o nouă aplicație Flutter barebones folosind flutter create APPNAME. Va fi mult mai ușor să înțelegeți toate acestea dacă începeți proaspăt. Apoi, mai târziu, implementați ceea ce ați învățat în aplicațiile dvs. existente.

Prima ordine de idei este crearea unei clase pentru a gestiona crearea tabelelor noastre și pentru a interoga baza de date. Pentru a face acest lucru corect, trebuie să adăugăm sqflite și path_provider ca dependențe în pubspec.yaml fişier.

În cazul în care nu rulează automat, rulați flutter packages get pentru a recupera pachetele. Odată ce se termină, creați un fișier data folder și a database.dart fișier în cadrul acestuia. Această clasă va crea un singleton, astfel încât să putem accesa baza de date din alte fișiere, să deschidem baza de date și să executăm interogări pe baza de date respectivă. Am inclus comentarii pentru a explica o parte din cod.

ad-banner

Creați un alt dosar, modelsși adăugați un fișier la acesta: note_model.dart. Iată un instrument excelent pentru a realiza cu ușurință modele: https://app.quicktype.io/#l=dart.

NOTĂ: Rețineți că modelele NU trebuie să copieze coloanele din tabel. De exemplu, dacă aveți un ID de utilizator stocat într-un tabel ca cheie străină, modelul probabil nu ar trebui să conțină acel ID de utilizator. În schimb, modelul ar trebui să utilizeze acel ID de utilizator pentru a prelua un real User obiect.

Odată cu modelul nostru de note creat, putem adăuga funcțiile finale în fișierul bazei de date care va gestiona toate interogările legate de note.

Să începem cu fluxurile și BLoC-urile acum. Dacă este prima dată când lucrezi cu acestea, poate fi destul de descurajant. Vă promit totuși că fluxurile și BLoC-urile sunt extrem de simple odată ce treceți de faza de învățare.

Primul lucru de care avem nevoie este un blocs dosar din cadrul data pliant. Acest folder va conține toate BLoC-urile noastre, așa cum sugerează și numele. Să creăm fișierele pentru fiecare BLoC: bloc_provider.dart, notes_bloc.dart, și view_note_bloc.dart. Un BLoC pe pagină și unul pentru a furniza BLoC acelor pagini.

bloc_provider are sarcina de a furniza cu ușurință paginilor noastre BLoC-ul necesar și apoi de a le elimina atunci când este necesar. De fiecare dată când dorim să folosim un BLoC, vom folosi bloc_provider.

Ori de câte ori avem nevoie de un BLoC pe una dintre paginile noastre, vom utiliza fișierul BlocProvider asa:

Să creăm notele noastre BLoC care se vor ocupa de recuperarea tuturor notelor noastre și adăugarea de note noi în baza de date. Deoarece BLoC-urile noastre sunt specifice paginii, acest BLoC va fi utilizat numai pe pagina de note. Am comentat codul pentru a explica ce se întâmplă.

Cu notele BLoC create, avem tot ce ne trebuie pentru a crea pagina de note. Această pagină va afișa toate notele noastre și ne va permite să adăugăm altele noi. Vom pune codul pentru pagina noastră de note main.dart. Încă o dată, am comentat toate piesele de cod necesare pentru a explica ce se întâmplă.

Acum avem nevoie de o modalitate de a vizualiza, edita, salva și șterge notele. Aici intră în joc nota de vizualizare BLoC și pagina de notă de vizualizare. Vom începe cu view_note_bloc.dart.

Acum putem construi pagina reală pentru a ne permite să interacționăm cu notele noastre. Codul pentru această pagină intră view_note.dart.

Cum se utilizeaza fluxuri BLoC si SQLite in Flutter
Aplicație finală utilizând fluxuri, BLoC și SQLite

Asta este tot ce trebuie pentru a lucra cu fluxuri, BLoC și SQLite. Folosindu-le, am creat o aplicație super simplă care ne permite să creăm, să vizualizăm, să edităm și să ștergem note. Sper că această soluție te-a făcut să ai mai multă încredere în lucrul cu fluxurile. Acum veți putea să le implementați cu ușurință în propriile aplicații. Dacă aveți întrebări, vă rugăm să lăsați un comentariu, deoarece mi-ar plăcea să le răspund. Mulțumesc pentru lectură.

Vizualizați codul complet aici: https://github.com/Erigitic/flutter-streams