Sunt disponibile limbajul Dart 2.14 și framework-ul Flutter 2.5

Compania Google a lansat versiunea 2.14 a limbajului de programare Dart, continuând dezvoltarea unei ramuri complet revizuite a Dart 2, care se diferențiază de varianta inițială a limbajului Dart prin utilizarea unui tip static puternic (tipurile pot fi deduse automat, așadar specificarea tipurilor nu este obligatorie, însă tipul dinamic nu mai este utilizat, iar tipul inițial detectat este asociat variabilei și se aplică ulterior o verificare strictă a tipului).

Caracteristicile limbajului Dart:

  • Sintaxă familiară și simplă de învățat, naturală pentru programatorii de JavaScript, C și Java.
  • Asigurarea unui timp rapid de pornire și performanțe ridicate pentru toate browserele web moderne și diverse tipuri de medii, de la dispozitive portabile la cele puternice. servere.
  • Posibilitatea de a defini clase și interfețe, permițând utilizarea încapsulării și reutilizarea metodelor și datelor existente.
  • Specificarea tipurilor permite simplificarea depanării și identificarea erorilor, face codul mai clar și mai ușor de citit, facilitând îmbunătățirea și analiza codului de către alți dezvoltatori.
  • Printre tipurile acceptate se numără: diverse tipuri de hash-uri, array-uri și liste, cozi, tipuri numerice și de șiruri, tipuri pentru definirea datei și timpului, expresii regulate (RegExp). Există posibilitatea de a crea propriile tipuri.
  • Pentru organizarea executării paralele se recomandă utilizarea claselor cu atributul isolate, a căror cod rulează complet în spații izolate în zone separate de memorie, interacționând cu procesul principal prin trimiterea de mesaje.
  • Suport pentru utilizarea bibliotecilor, care facilitează mentenanța și depanarea proiectelor web mari. Implementările externe ale funcțiilor pot fi conectate sub formă de biblioteci partajate. Aplicațiile pot fi împărțite în părți, delegând dezvoltarea fiecărei părți unei echipe separate de programatori.
  • Un set de instrumente gata de utilizare pentru suportul dezvoltării în limbajul Dart, inclusiv implementarea unor unelte pentru dezvoltare dinamică și depanare cu corectarea codului în timp real („edit-and-continue”).
  • Pentru simplificarea dezvoltării în limbajul Dart, este livrat SDK-ul, managerul de pachete pub, analistul static de cod dart_analyzer, un set de biblioteci, mediu integrat de dezvoltare DartPad și plugin-uri cu suport Dart pentru IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 și Vim.
  • Pachetele suplimentare cu biblioteci și utilitare sunt disponibile prin intermediul repository-ului pub, care conține peste 20.000 de pachete.

Principalele modificări în versiunea Dart 2.14:

  • A fost adăugat un nou operator de deplasare triplu (>>>) care, spre deosebire de operatorul (>>), efectuează o deplasare logică, fără a ține cont de bitul semnului (deplasarea se face fără a distinge între numere pozitive și negative).
  • A fost eliminată restricția privind argumentele de tip, care nu permitea utilizarea tipurilor generice de funcții ca argumente de tip. De exemplu, acum este posibil să specificați: late List<T Function(T)> idFunctions; var callback = [(T value) => value]; late S Function<S extends T Function(T)>(S) f;
  • Este permisă specificarea argumentelor cu tipuri în anotații precum @Deprecated. De exemplu, acum este posibil să specificați: @TypeHelper(42, „Semnificația”)
  • În biblioteca standard (core), s-au adăugat metode statice hash, hashAll și hashAllUnordered în clasa Object. În clasa DateTime, s-a îmbunătățit gestionarea timpului local atunci când se face conversia între ora de vară și ora standard, în cazul în care nu este un interval întreg de o oră (de exemplu, în Australia se folosește un offset de 30 de minute). Pachetului ffi i s-a adăugat suportul pentru mecanismul de alocare a memoriei arena, care eliberează automat resursele. Pachetului ffigen i s-a adăugat capacitatea de a genera definiții typedef pentru tipurile Dart din limbajul C.
  • Cele mai populare 250 de pachete din repository-ul pub.dev și 94% din top-1000 au fost adaptate pentru a utiliza modul de siguranță a valorilor null (null safety), care va evita prăbușirile cauzate de încercările de utilizare a variabilelor cu valori nedefinite setate pe „Null”. Modul implică faptul că variabilele nu pot avea valori nedefinite, cu excepția cazului în care li se atribuie explicit valoarea null. În acest mod, tipurile de variabile sunt strict verificate, ceea ce permite compilatorului să aplice optimizări suplimentare. Compatibilitatea tipurilor este verificată în etapa de compilare; de exemplu, în cazul unei încercări de a atribui valoarea „Null” unei variabile cu un tip care nu permite un statut nedefinit, cum ar fi „int”, va apărea o eroare.
  • Au fost propuse seturi unificate de reguli pentru analizatorul de cod (linter), care asigură suport simultan pentru verificarea respectării recomandărilor de stil de cod pentru Dart și cadrul Flutter. Din motive istorice, regulile de stil pentru Flutter și Dart erau diferite, în plus, pentru Dart existau două seturi de reguli în uz - cele pedante de la Google și regulile comunității dezvoltatorilor Dart. În Dart 2.14 a fost introdus un nou set comun de reguli pentru linter, care va fi aplicat implicit în noile proiecte Dart și în Flutter SDK. Setul include reguli de bază (pachet lints/core.yaml), reguli suplimentare recomandate (lints/recommended.yaml) și recomandări specifice pentru Flutter (flutter_lints/flutter.yaml). Utilizatorilor regulilor pedante li se recomandă să treacă la utilizarea noului stil de codare, bazat pe recomandările din documentația Dart.
  • În formatter au fost efectuate optimizări în formatul blocurilor de cod în cascadă, care permit creșterea semnificativă a performanței de format și evită ambiguitățile în interpretarea apartenenței elementelor expresiei. De exemplu, apelul „..doIt” în expresia „var result = errorState ? foo : bad..doIt()” se referă nu la partea condițională a blocului „bad”, ci la întreaga expresie, prin urmare, la formatare acum se separă: var result = errorState ? foo : bad ..doIt();
  • În SDK a fost adăugată suportul pentru procesoarele Apple M1 (Silicon), care implică atât posibilitatea de a rula Dart VM, utilitare și componente SDK pe sisteme cu procesor Apple Silicon, cât și suport pentru compilarea fișierelor executabile pentru procesoarele menționate.
  • Echipei „dart pub” i-a fost adăugat suportul pentru noul fișier de serviciu „.pubignore”, care permite definirea unei liste de fișiere ce vor fi omise în timpul publicării pachetului în repositoarul pub.dev. Setările specificate nu se suprapun cu lista de ignorare „.gitignore” (în anumite situații, în pub.dev este necesar să nu se transmită fișiere care sunt necesare în Git, de exemplu, scripturi interne utilizate în timpul dezvoltării).
  • Au fost fezse lucrări pentru îmbunătățirea performanței echipei „dart test”, care acum nu mai necesită recompilarea testelor după modificarea pubspec, dacă numărul versiunii nu s-a schimbat.
  • S-a încheiat suportul pentru compilarea în modul de compatibilitate cu ECMAScript 5 (modificarea va duce la pierderea compatibilității cu browserul IE11).
  • Anunțate ca fiind învechite, anumite utilitare stagehand, dartfmt și dart2native, au fost înlocuite de comenzi încorporate, invocate prin utilitarul dart.
  • A fost declarat învechit mecanismul VM Native Extensions. Pentru a apela cod nativ din cod scris în limbajul Dart, se recomandă utilizarea noului interfață Dart FFI (Foreign Function Interface).

În același timp, a fost lansat un update semnificativ al framework-ului pentru construcția interfețelor utilizatorului Flutter 2.5, care este considerat o alternativă la React Native și permite, pe baza unei singure baze de cod, lansarea de aplicații pentru platformele iOS, Android, Windows, macOS și Linux, precum și crearea de aplicații pentru a fi rulate în browsere. Pe baza Flutter a fost construită interfața utilizatorului a sistemului de operare microkernel Fuchsia, dezvoltat de Google.

Majoritatea codului Flutter este realizat în limbajul Dart, iar motorul runtime pentru executarea aplicațiilor este scris în C++. În dezvoltarea aplicațiilor, pe lângă limbajul Dart, nativ pentru Flutter, se poate utiliza interfața Dart Foreign Function pentru a apela cod în C/C++. Performanța înaltă este atinsă datorită compilării aplicațiilor în cod mașină pentru platformele țintă. În acest fel, programul nu trebuie recompilat după fiecare modificare — Dart oferă un mod de reîncărcare rapidă, permițând modificări în aplicația în funcțiune și evaluarea imediată a rezultatului.

Principalele modificări în Flutter 2.5:

  • Au fost introduse optimizări semnificative ale performanței. Pe platformele iOS și macOS, a fost implementată precompilarea shaderelor pentru API-ul grafic Metal. A crescut eficiența procesării evenimentelor asincrone. Problema întârzierilor în timpul eliberării memoriei de către colectorul de gunoi pentru imaginile neutilizate a fost rezolvată (de exemplu, în timpul redării unui GIF animat de 20 de secunde, numărul operațiunilor de colectare a gunoiului a scăzut de la 400 la 4). Întârzierile în transmiterea mesajelor între Dart și Objective-C/Swift (iOS) sau Java/Kotlin (Android) au fost reduse cu până la 50%. A fost adăugată suportul pentru builds native pe sistemele bazate pe chipul Apple Silicon.
    Sunt disponibile limbajul Dart 2.14 și framework-ul Flutter 2.5
  • Pentru platforma Android a fost implementat suportul pentru rularea aplicațiilor în modul fullscreen. S-a continuat implementarea conceptului de design „Material You”, prezentat ca o variantă a Material Design-ului de nouă generație. A fost adăugat un nou stat MaterialState.scrolledUnder, realizat un afișaj dinamic al barelor de derulare la schimbarea dimensiunii și propus o nouă interfață pentru afișarea bannerelor cu notificări.
  • Funcționalitățile pluginului pentru lucru cu camera au fost semnificativ extinse, incluzând instrumente pentru controlul autofocusului, expunerii, blițului, măriri, reducerea zgomotului și rezoluției.
  • Instrumentele pentru dezvoltatori (DevTools) au fost îmbunătățite, având un mod actualizat de inspecție a widget-urilor și oferind unelte pentru detectarea întârzierilor la randare și urmărirea compilării shaderelor.
    Sunt disponibile limbajul Dart 2.14 și framework-ul Flutter 2.5
  • Pluginurile pentru Visual Studio Code și IntelliJ/Android Studio au fost îmbunătățite.

Sursa: opennet.ro

Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS 🔥 Cumpără un hosting fiabil pentru site-uri cu protecție DDoS, servere VPS VDS | ProHoster