De ce iubitorii de aplicații adoră Flutter? Pentru că Flutter este uimitor.
Flutter se adresează atât întreprinderilor (oferind costuri rezonabile de dezvoltare), cât și dezvoltatorilor (oferind o mare utilizare și viteză). De aceea unele companii mari au trecut la Flutter, precum Google Ads, Alibaba, Reflectly și multe altele.
Google a făcut o treabă excelentă construind Flutter și continuă să îmbunătățească acest cadru.
În această postare, voi oferi o prezentare rapidă a Flutter și a avantajelor sale noi și voi vorbi despre motivul pentru care merită să lucrați cu acest cadru. În plus, voi discuta despre ceea ce poate împiedica marile companii să adopte Flutter.
Dar mai întâi lucrurile.
Care este esența Flutterului?
Iată câteva lucruri despre Flutter pe care probabil le știți deja:
- este un set de instrumente open-source, multiplataforma
- aplicațiile sunt scrise în limbajul de programare Dart
- are propriul motor grafic (Skia)
- acceptă oficial trei platforme: iOS, Android și web (în versiune beta)
- neoficial – suportă și desktop
Google a introdus prima versiune Flutter la sfârșitul lunii februarie 2018. În aprilie 2020, versiunea 1.12 este disponibilă.
Ce este atât de special la Flutter?
Flutter combină calitatea aplicațiilor native cu flexibilitatea dezvoltării pe mai multe platforme.
De fapt, multe instrumente multi-platformă vă permit să scrieți codul o singură dată și să îl utilizați atât pe iOS, cât și pe Android. Cu toate acestea, nu toți pot reda același aspect ca o aplicație nativă.
Dar exact asta face Flutter: în loc să fie un wrapper deasupra componentelor native UI (cum ar fi React Native și Xamarin), Flutter atrage UI de la zero.
Flutter menține experiența și senzația nativă a aplicației și nu trebuie să vă faceți griji cu privire la performanța acesteia pe nicio platformă.

În plus, deoarece Flutter este un cadru open-source, orice dezvoltator poate face modificări la acesta GitHub și trimiteți cereri de îmbinare. Și dacă aruncați o privire asupra popularității lui Flutter – 90,4K GitHub stele, Furci de 12k, și 18.445 de comisioane – veți avea ideea că dezvoltatorii iubesc Flutter și contribuiți la îmbunătățirea acestuia.
Cum funcționează Flutter?
Flutter nu este compilat direct în aplicațiile iOS sau Android. Aplicațiile sunt lansate pe baza unei combinații de motor de redare (construit pe C ++) și Flutter (construit pe Dart). Toate fișierele generate astfel se atașează fiecărei aplicații și software-ului ansamblurilor SDK pentru o anumită platformă.

Este ca dezvoltarea jocului: un joc nu își alocă cadrul și funcționalitatea este realizată cu motorul jocului. Același lucru pentru software-ul Flutter – toate aplicațiile bazate pe SDK Flutter înlocuiesc părți ale cadrelor native cu elemente Flutter.

Deși poate afecta dimensiunea aplicației finale, performanța este încă destul de bună – randarea se face cu viteze de până la 120 FPS.
Datorită compilației native pentru procesoarele ARM, redării simple și unui set de widget-uri și instrumente integrate, Flutter simplifică procesul de dezvoltare.
În plus, oferă câteva caracteristici foarte gustoase, cum ar fi Reîncărcare la cald.
Iată cum funcționează:
Când faceți clic pe butonul Reîncărcare rapidă, toate modificările de cod sunt afișate imediat în gadgeturi, emulatoare și simulatoare. Aplicația continuă să funcționeze de unde era înainte de a accesa reîncărcarea rapidă: codul se actualizează, dar execuția continuă.

De ce să alegeți Flutter pentru aplicațiile cu mai multe platforme?
Noile versiuni Flutter vor continua să apară cu funcții mai avansate în mâneci. Dar există deja o mulțime de funcții îmbunătățite care explică perfect de ce Flutter este atât de iubit.
Primul, dezvoltarea multiplataforma cu Flutter, contrar credinței populare, nu înrăutățește software-ul.
Flutter vine cu toate widget-urile native pentru interfețele Android și iOS precum Material Design și Cupertino. În plus, cadrul poate modifica comportamentul elementelor separate pentru a crea UX similar pentru utilizatorii aplicației.
Al doilea, Flutter face posibilă implementarea compilării discrete a fișierelor în modul dev. Compilația JiT accelerează dezvoltarea și depanarea software-ului.
Al treilea, Flutter permite un backend flexibil și scalabil.
Suportă pluginuri precum Firebase, SQLite și așa mai departe (pub.dev vă va ajuta să o găsiți pe cea de care aveți nevoie). Firebase face ca infrastructura aplicației să fie scalabilă, fără server și redundantă.
Deci, dacă lucrați la aplicații care necesită baze de date în timp real sau funcții cloud, Flutter vă revine.
Și ultima: Flutter este foarte usor de invatat.
Încă de la început, dezvoltatorii Google și-au stabilit un obiectiv de a reduce bariera de intrare. Au elaborat cu atenție documentația și resursele pe care dezvoltatorii le pot folosi. Are chiar secțiuni speciale pe care le puteți utiliza pentru a începe să învățați cadrul în funcție de specializarea dvs.:
- Flutură pentru Android devs
- Flutură pentru iOS devs
- Flutură pentru Reactive native devs
- Flutură pentru Xamarin.Formuri devs
- Flutură pentru web devs
Datorită documentației detaliate a lui Flutter, veți afla cum să scrieți cod în Dart, chiar dacă aveți doar experiență cu instrumentele grafice Unity pentru a crea jocuri Android.
Flutter 1.12 (ultima versiune) și avantajele sale
Să vedem ce caracteristici fierbinți a introdus Flutter în ultima sa versiune 1.12 versiune:
Mod întunecat iOS
De acum înainte, Flutter acceptă aspectul iOS 13, inclusiv suport complet pentru modul întunecat în widget-urile Cupertino. Și nu este vorba doar de schimbarea fundalului, ci de adaptarea celorlalte culori pentru a fi un meci bun.
Suport pentru aplicații suplimentare
O altă mare îmbunătățire este actualizarea Add-to-App, care este pentru integrarea Flutter în aplicațiile iOS / Android deja existente.
Noua versiune Flutter acceptă adăugarea unei aplicații Flutter pe ecran complet în aplicație, împreună cu:
- Stabilizat Integrarea API-urilor în Java, Kotlin, Objective-C și Swift
- Suport pentru utilizarea pluginurilor în modulele Flutter
- Mecanisme de integrare suplimentare prin AAR-uri Android și cadre iOS
Suport web beta
Noile canale master Flutter, dev și beta oferă suport îmbunătățit pentru web. Vrei câteva exemple?
Iată Nit, un proiect educațional care a folosit Flutter și Firebase pentru a crea o versiune web a aplicației lor.

Dart 2.7
Noua versiune a cadrului introduce Dart 2.7.
Această actualizare îmbunătățește experiența de funcționare cu Dart 2.5 în modul în care șirurile sigure gestionează abilitățile și procesele de extensie. Acest lucru îi ajută pe dezvoltatori să prevină erorile atunci când variabilele obțin o valoare zero și analizează numerele întregi într-un șir.
Iată câteva alte caracteristici ale celei mai recente versiuni Flutter:
- suport pentru desktop macOS (alfa)
- depanare pe mai multe dispozitive
- testarea imaginii de aur
- Îmbunătățiri ale versiunii Android
- actualizat DartPad
Este bine, dar nu fără probleme: ce îi împiedică pe dezvoltatori?
Flutterul este foarte cool: ușor de început, simplu de lucrat și prezentat de o companie imensă de tehnologie. Totuși, iată motivele pentru care este posibil ca dezvoltatorul dvs. senior să nu împărtășească optimismul dvs.
Popularitatea (redusă) Dart
Spre deosebire de Java / Kotlin pentru Android sau Swift / Objective-C pentru iOS, Dart nu are încă popularitate mare. Și este foarte puțin probabil să o facă.
Dart nu este prea greu de învățat și există o mulțime de tutoriale (ca acesta unu), dar unii dezvoltatori continuă să rămână la Java și la alte instrumente familiare.
În același timp, nu puteți utiliza Flutter și nu utilizați Dart: chiar și funcția ucigașă a lui Flutter – Hot Reload – nu va funcționa fără Dart.
Nu acceptă toate dispozitivele
Nu puteți crea aplicații pentru dispozitive iOS pe 32 de biți, cum ar fi cele mai vechi decât iPhone 5s. La fel și pentru desktopurile Windows: nu puteți rula Flutter pe laptopul dvs. pe 32 de biți.
Și dezvoltatorii Flutter nu au planuri să o remedieze, deoarece „acest lucru ar implica o cantitate foarte importantă de muncă”.
Deci, dacă doriți să codificați cu Flutter, va trebui să dețineți un dispozitiv x64 biți sau să îl actualizați pe cel pe care îl utilizați acum.
Număr limitat de biblioteci
Deși există multe Fls libs ca fl_chart (pentru desenarea graficelor în Flutter), cale_furnizor (folosit pentru a localiza un fișier pe Android / iOS), flutter_sliding_tutorial și multe altele, numărul este încă limitat.

Acest lucru nu este greu de explicat: Flutter este un cadru relativ nou, iar dezvoltatorii nu au avut suficient timp pentru a dezvolta cât mai multe lib-uri pe care le oferă limbile native.
Totuși, cele mai importante biblioteci sunt deja acolo, iar noi apar tot timpul.
Aplicațiile Flutter au dimensiuni mai mari
… comparativ cu aplicațiile dezvoltate nativ. Echipa lui Flutter măsurat dimensiunea minimă a aplicației (fără componente materiale, doar un singur widget central, construit cu flutter build apk – split-per-abi), grupat și comprimat, să fie de 4,3 MB pentru ARM și 4,6 MB pentru ARM 64.
Aplicația de bază este acum ~4 MB în Android și ~10 MB în iOS.
Puțin expertiză dovedită
Flutter poate fi iubit de dezvoltatori, dar companiile mari nu s-au grăbit să înceteze să creeze aplicații native (sau React Native) și să apeleze la Flutter.
Pentru majoritatea companiilor, cea mai mare problemă este noutatea lui Flutter. Dart este mai nou decât Java sau C #, iar Flutter în sine este nou.
Desigur, sunt multe Flutter aplicații open source, inclusiv cele mari precum Google Ads sau Hamilton (consultați lista completă aici), dar nu prea multe.
Și nimeni nu dorește să fie persoana care adoptă un cadru nou-nouț pentru a trece la dezvoltarea nativă câteva luni mai târziu.

Dar ceea ce este și mai important este că Flutter este calea pe care o parcurgi singur:
- nu există multe bune practici confirmate (cel puțin la proiecte de anvergură)
- întotdeauna șansa de a fi primul care se confruntă cu această problemă specială
- puțină speranță că cineva vă va ajuta – va trebui să faceți fiecare pas cu atenție și să fiți gata să faceți față consecințelor
Unde să utilizați Flutter
În primul rând, este mai bine să utilizați Flutter pentru startup-urile MVP atunci când aveți timp limitat și adesea bani pentru a verifica modelul de afaceri.
O aplicație Flutter este mai ieftin*:
- * comparativ cu costul a două aplicații native
- echipa de dezvoltare este cu 40% mai mică
- procese liniare
- puteți petrece mai mult timp lucrând la funcțiile aplicației
Optând pentru un proiect Flutter, reduceți numărul de ore de dezvoltare. Dezvoltarea Flutter nu necesită atât de mult timp comparativ cu cea nativă.
Iată un exemplu. Să presupunem că creați o aplicație de tip Instagram pentru două platforme. Dezvoltarea iOS va dura, aproximativ, aproximativ 700 ore, Android – de asemenea 700h.
Cu Flutter, veți acoperi ambele platforme și veți economisi timp: 700h Android + 700h iOS vs. 700h Flutter.
Economisiți tone de timp pe care le puteți petrece în altceva, cum ar fi lustruirea caracteristicilor.
Încheierea
Dacă creați aplicații în timp limitat cu un buget limitat, Flutter merită cu siguranță încercat.
Este la fel de bun pe cât pare și cu fiecare nouă actualizare, dezvoltatorii Google adaugă mai multe instrumente uniforme pentru dezvoltarea multiplataforme.
Desigur, acest cadru poate părea neobișnuit pentru iubitorii de C # și Java, dar nu înseamnă că te va forța să ieși din zona ta de confort. După ce ați însușit diferențele mici de sintaxă, veți vedea în curând că dezvoltarea interfeței de utilizare este de câteva ori mai rapidă în comparație cu dezvoltarea nativă.
Și dacă aveți succes și dacă Flutter rămâne în jur, ar putea să vă aducă o experiență și oportunități de dezvoltare mobilă interesante în viitor.