M-am implicat puțin în dezvoltarea Android și iOS cu câțiva ani în urmă folosind Java și Objective-C. După ce am petrecut aproximativ o lună lucrând cu amândoi, am decis să merg mai departe. Pur și simplu nu am putut intra în asta.

Însă, recent, am aflat despre Flutter și am decis să ofer o dezvoltare nouă aplicației mobile. M-am îndrăgostit instantaneu de ea, deoarece a făcut ca dezvoltarea de aplicații multi-platformă să fie o mulțime de distracție. De când am aflat despre asta, am creat o aplicație și o bibliotecă folosind-o. Flutterul pare a fi un pas înainte foarte promițător și aș dori să explic câteva motive diferite pentru care cred acest lucru.

Powered by Dart

Flutter folosește limbajul Dart dezvoltat de Google. Dacă ați folosit Java înainte, veți fi destul de familiarizați cu sintaxa lui Dart, deoarece sunt destul de asemănătoare. Pe lângă sintaxă, Dart este un limbaj destul de diferit.

Nu voi vorbi despre Dart în profunzime, deoarece este puțin în afara domeniului de aplicare, dar aș dori să discut despre una dintre cele mai utile caracteristici în opinia mea. Această caracteristică este suport pentru operațiuni asincrone. Dart nu numai că îl acceptă, dar îl face excepțional de ușor.

Acesta este un lucru pe care cel mai probabil îl veți folosi în toate aplicațiile Flutter dacă faceți IO sau alte operațiuni care necesită mult timp, cum ar fi interogarea unei baze de date. Fără operații asincrone, orice operațiuni care necesită mult timp va determina înghețarea programului până la finalizarea acestuia. Pentru a preveni acest lucru, Dart ne oferă async și await cuvinte cheie care permit programului nostru să continue execuția în așteptarea finalizării acestor operațiuni mai lungi.

Să aruncăm o privire la câteva exemple: unul fără operații asincrone și unul cu.

Și rezultatul:

Nu este ideal. Nimeni nu dorește să utilizeze o aplicație care se blochează atunci când execută operațiuni lungi. Deci, să modificăm puțin acest lucru și să folosim async și await Cuvinte cheie.

Și ieșirea încă o dată:

Datorită operațiunilor asincrone, putem executa cod care durează puțin până se finalizează fără a bloca executarea restului codului nostru.

Scrie o dată, rulează pe Android și iOS

Dezvoltarea aplicațiilor mobile poate dura mult timp, având în vedere că trebuie să utilizați o bază de cod diferită pentru Android și iOS. Asta dacă nu utilizați un SDK ca Flutter, unde aveți o singură bază de cod care vă permite să vă construiți aplicația pentru ambele sisteme de operare. Nu numai asta, dar le puteți rula complet nativ. Aceasta înseamnă lucruri precum derularea și navigarea, pentru a numi câteva, acționează exact așa cum ar trebui pentru sistemul de operare utilizat.

Pentru a ține pasul cu tema simplității, atâta timp cât aveți un dispozitiv sau un simulator care rulează, Flutter face ca construirea și rularea aplicației dvs. pentru testare să fie la fel de simple ca un clic pe un buton.

Dezvoltare UI

Dezvoltarea IU este unul dintre acele lucruri pe care aproape niciodată nu le aștept. Sunt mai mult un dezvoltator de backend, așa că atunci când vine vorba de lucrul la ceva care depinde puternic de acesta, vreau ceva simplu. Aici Flutter strălucește în ochii mei.

UI este creată prin combinarea diferitelor widget-uri și modificarea acestora pentru a se potrivi aspectului aplicației dvs. Aveți aproape control deplin asupra modului în care se afișează aceste widget-uri, așa că veți ajunge întotdeauna exact la ceea ce căutați. Pentru stabilirea interfeței de utilizare, aveți widget-uri precum Row, Column, și Container. Pentru conținut, aveți widgeturi de genul Text și RaisedButton. Acesta este doar câteva dintre widget-urile pe care Flutter le oferă, sunt mult mai multe. Folosind aceste widgeturi, putem construi o interfață de utilizare foarte simplă:

De ce cred ca Flutter este viitorul dezvoltarii aplicatiilor mobile

Flutter are mai multe trucuri în mânecă, ceea ce face ca aplicația dvs. să fie o briză. Puteți trece și schimba manual fonturile, culorile și căutați totul unul câte unul, dar asta durează mult. În schimb, Flutter ne oferă ceva numit ThemeData care ne permite să setăm valori pentru culori, fonturi, câmpuri de intrare și multe altele. Această caracteristică este excelentă pentru a păstra aspectul aplicației dvs. consecvent.

Cu asta ThemeData, setăm culorile aplicațiilor, familia de fonturi și unele stiluri de text. Totul în afară de stilurile de text va fi aplicat automat la nivel de aplicație. Stilurile de text trebuie setate manual pentru fiecare widget de text, dar este totuși simplu:

1611499446 218 De ce cred ca Flutter este viitorul dezvoltarii aplicatiilor mobile
Aplicația Flutter utilizând ThemeData de mai sus

Pentru a face lucrurile și mai eficiente, Flutter poate reîncărca aplicații la cald, astfel încât să nu aveți nevoie să o reporniți de fiecare dată când modificați interfața de utilizare. Acum puteți să faceți o modificare, să o salvați, apoi să o vedeți într-o secundă sau cam așa ceva.

Biblioteci

Flutter oferă multe funcții minunate, dar există momente în care ai nevoie de ceva mai mult decât oferă. Nu este deloc o problemă, având în vedere numărul mare de biblioteci disponibile pentru Dart și Flutter. Doriți să introduceți anunțuri în aplicația dvs.? Există o bibliotecă pentru asta. Doriți widget-uri noi? Există biblioteci pentru asta.

Dacă sunteți mai mult un bricolaj, creați-vă propria bibliotecă și partajați-o cu restul comunității în cel mai scurt timp. Adăugarea de biblioteci la proiectul dvs. este simplă și se poate face prin adăugarea unei singure linii la pubspec.yaml fişier. De exemplu, dacă doriți să adăugați fișierul sqflite bibliotecă:

După adăugarea acestuia în fișier, rulați flutter packages get și ești bine să pleci. Bibliotecile fac din dezvoltarea aplicațiilor Flutter o briză și economisesc mult timp în timpul dezvoltării.

Dezvoltare Backend

Majoritatea aplicațiilor depind în prezent de un fel de date, iar aceste date trebuie stocate undeva, astfel încât să poată fi afișate și folosite ulterior. Așadar, este important să țineți cont de acest lucru atunci când căutați să creați aplicații cu un SDK nou, cum ar fi Flutter.

Încă o dată, aplicațiile Flutter sunt realizate folosind Dart, iar Dart este minunat atunci când vine vorba de dezvoltarea backend-ului. Am vorbit multe despre simplitate în acest articol, iar dezvoltarea backend-ului cu Dart și Flutter nu face excepție. Este incredibil de simplu să creați aplicații bazate pe date, atât pentru începători, cât și pentru experți, dar această simplitate nu echivalează în niciun caz cu o lipsă de calitate.

Pentru a lega acest lucru de secțiunea anterioară, sunt disponibile biblioteci, astfel încât să puteți lucra cu baza de date la alegere. Folosind sqflite bibliotecă, putem să funcționăm cu o bază de date SQLite destul de repede. Și datorită single-urilor, putem accesa baza de date și o putem interoga practic de oriunde, fără a fi nevoie să recreăm un obiect de fiecare dată.

După preluarea datelor dintr-o bază de date, le puteți converti într-un obiect folosind un model. Sau dacă doriți să stocați un obiect în baza de date, îl puteți converti în JSON utilizând același model.

Aceste date nu sunt atât de utile fără o modalitate de a le afișa utilizatorului. Aici intervine Flutter cu widget-uri precum FutureBuilder sau StreamBuilder. Dacă sunteți interesat de o privire mai aprofundată despre crearea de aplicații bazate pe date folosind Flutter, SQLite și alte tehnologii, vă încurajăm să consultați articolul pe care l-am scris despre asta:

Utilizarea fluxurilor, BLoC-urilor și SQLite în Flutter
Fluxurile, BLoC-urile și SQLite asigură o combinație excelentă atunci când vine vorba de lucrul cu date în Flutter …

Gânduri finale

Cu Flutter, posibilitățile sunt practic nelimitate, astfel încât chiar și aplicațiile super extinse pot fi create cu ușurință. Dacă dezvolți aplicații mobile și încă nu ai încercat Flutter, îți recomand cu tărie să faci asta, deoarece sunt sigur că te vei îndrăgosti și de ea. După ce am folosit Flutter timp de câteva luni, cred că este sigur să spunem că este viitorul dezvoltării mobile. Dacă nu, este cu siguranță un pas în direcția corectă.