Lingua Dart 2.14 è framework Flutter 2.5 dispunibule

Google hà publicatu a liberazione di a lingua di prugrammazione Dart 2.14, chì cuntinueghja u sviluppu di un ramu radicalmente riprogettatu di Dart 2, chì difiere da a versione originale di a lingua Dart per l'usu di una forte tipografia statica (i tipi ponu esse inferiti automaticamente, cusì a specificazione di i tipi ùn hè micca necessariu, ma a digitazione dinamica ùn hè più utilizata è inizialmente calculata u tipu hè assignatu à a variàbile è u cuntrollu di tipu strettu hè sussegwentemente applicatu).

Caratteristiche di a lingua Dart:

  • Sintassi familiare è faciule d'amparà, naturali per i programatori JavaScript, C è Java.
  • Assicurendu un lanciu rapidu è un altu rendimentu per tutti i navigatori web muderni è diversi tipi di ambienti, da i dispositi portatili à i servitori putenti.
  • A capacità di definisce classi è interfacce chì permettenu l'incapsulazione è a reutilizazione di metudi è dati esistenti.
  • A specificazione di i tipi facilita a debug è l'identificazione di l'errori, rende u codice più chjaru è più leggibile, è simplifica a so mudificazione è l'analisi da i sviluppatori di terzu.
  • Tipi supportati includenu: vari tipi di hash, array è listi, file, tipi numerichi è di stringa, tipi per a determinazione di data è ora, espressioni regulare (RegExp). Hè pussibule di creà i vostri tipi.
  • Per urganizà l'esekzione parallela, hè pruposta d'utilizà classi cù l'attributu isolatu, u codice di quale hè eseguitu interamente in un spaziu isolatu in una zona di memoria separata, interagisce cù u prucessu principale mandendu missaghji.
  • Supportu per l'usu di biblioteche chì simplificà u supportu è u debugging di grandi prughjetti web. L'implementazioni di e funzioni di terze parti ponu esse incluse in forma di biblioteche spartute. L'applicazioni ponu esse divise in parte è affidate u sviluppu di ogni parte à una squadra separata di programatori.
  • Un inseme di strumenti pronti per sustene u sviluppu in a lingua Dart, cumprese l'implementazione di u sviluppu dinamicu è l'arnesi di debugging cù a correzione di codice à a mosca ("edit-and-continue").
  • Per simplificà u sviluppu in a lingua Dart, vene cun un SDK, un pub di gestore di pacchetti, un analizzatore di codice staticu dart_analyzer, un inseme di biblioteche, un ambiente di sviluppu integratu DartPad è plugins abilitati per Dart per IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 è Vim.
  • Pacchetti supplementari cù biblioteche è utilità sò distribuiti attraversu u repository pub, chì hà più di 20 mila pacchetti.

Cambiamenti principali in a versione di Dart 2.14:

  • Hè statu aghjustatu un novu operatore triple shift (>>>), chì, à u cuntrariu di l'operatore ">>", eseguisce micca un aritmeticu, ma un shift logicu chì travaglia senza piglià in contu u bit di signu (u shift hè realizatu senza divide in numeri pusitivi è negativi).
  • Eliminatu a restrizione à l'argumenti di tipu chì impediscenu i tipi di funzioni generichi da esse utilizati cum'è argumentu di tipu. Per esempiu, avà pudete specificà: Lista tardi (T)> idFunzioni; var callback = [ (Valore T) => valore]; tardu S Funzione (T)> (S) f;
  • Permette di specificà argumenti cù tipi in annotazioni cum'è @Deprecated. Per esempiu, pudete avà specificà: @TypeHelper (42, "U significatu")
  • I metudi statichi hash, hashAll è hashAllUnordered sò stati aghjuntu à a libreria standard (core) in a classa Object. A classa DateTime hà migliuratu a gestione di l'ora locale quandu cunvertisce l'orologi trà l'ora d'estiu è l'invernu chì ùn sò micca divisibili per una ora (per esempiu, in Australia un offset di 30 minuti hè utilizatu). U pacchettu ffi hà aghjustatu supportu per u mecanismu di allocazione di memoria di arena, chì libera automaticamente risorse. U pacchettu ffigen hà aghjustatu a capacità di generà definizioni typedef di tipi di Dart da a lingua C.
  • I 250 pacchetti più populari da u repository pub.dev è u 94% di u top-1000 sò stati cambiati à utilizà u modu di "sicurezza nulla", chì evitarà i crashes causati da i tentativi di utilizà variabili chì u valore ùn hè micca definitu è ​​stabilitu à "Null". "" U modu implica chì e variàbili ùn pò micca avè valori nulli, salvu chì sò esplicitamente assignati u valore nulu. U modu rispettu strettamente i tipi di variàbili, chì permette à u compilatore di applicà ottimisazioni supplementari. U rispettu di u tipu hè verificatu à u tempu di compilazione, per esempiu, se pruvate d'assignà u valore "Null" à una variabile cù un tipu chì ùn implica micca un statu indefinitu, cum'è "int", un errore serà visualizatu.
  • Insiemi unificati di regule per l'analizzatore di codice (linter) sò pruposti, chì furnisce un supportu simultaneu per verificà u rispettu di e linee di stile di codice per Dart è u framework Flutter. Per ragioni storiche, i reguli di codificazione per Flutter è Dart eranu diffirenti, in più, per Dart ci era dui setti di reguli in usu - pedanti di Google è regule da a cumunità di sviluppatori Dart. Dart 2.14 introduce un novu settore cumuni di regule per linter, chì hè decisu di esse utilizatu per difettu in novi prughjetti Dart è in u Flutter SDK. U settore include regule core (lints/core.yaml package), reguli supplementari cunsigliati (lints/recommended.yaml), è raccomandazioni specifiche per Flutter (flutter_lints/flutter.yaml). L'utilizatori di reguli pedanti sò cunsigliati per passà à utilizà un novu stilu di codificazione basatu nantu à i cunsiglii da a documentazione di Dart.
  • In u formatatore, l'ottimisazioni sò state fatte à u furmatu di i blocchi di codice in cascata, chì ponu migliurà significativamente a prestazione di furmatu è evità l'interpretazione ambigua di a pruprietà di l'elementi di espressione. Per esempiu, chjamà "..doIt" in l'espressione "var result = errorState ? foo : bad..doIt()" ùn cuncerna micca a parte cundizionale di u bloccu "bad", ma tutta l'espressione, cusì quandu u furmatu hè avà separatu: var result = errorState ? foo : male ..doIt();
  • U supportu per i prucessori Apple M1 (Silicon) hè statu aghjuntu à u SDK, chì implica a capacità di eseguisce Dart VM, utilità è cumpunenti SDK in sistemi cù un processore Apple Silicon, è supportu per a compilazione di fugliali eseguibili per questi chips.
  • U cumandamentu "dart pub" hà aghjustatu supportu per un novu schedariu di serviziu ".pubignore", chì permette di definisce una lista di schedari chì seranu saltati quandu pubblicà un pacchettu à u repository pub.dev. Questi paràmetri ùn interferiscenu micca cù a lista ".gitignore" d'ignore (in certi situazioni, pub.dev pò vulete evitari di trasfiriri i schedari chì sò necessarii in Git, per esempiu, scripts interni utilizati durante u sviluppu).
  • U travagliu hè statu fattu per migliurà u funziunamentu di u cumandimu "dart test", chì avà ùn hà micca bisognu di teste di recompilazione dopu avè cambiatu pubspec se u numeru di versione ùn hè micca cambiatu.
  • U supportu per a compilazione in u modu di cumpatibilità ECMAScript 5 hè stata interrotta (u cambiamentu risulterà in a perdita di cumpatibilità cù u navigatore IE11).
  • L'utilità individuali stagehand, dartfmt è dart2native sò state dichjarate obsolete, rimpiazzate da cumandamenti integrati chjamati attraversu l'utilità dart.
  • U mecanismu di VM Native Extensions hè statu obsoletu. Per chjamà codice nativu da u codice Dart, hè cunsigliatu di utilizà a nova Dart FFI (Interfaccia di Funzione Estera).

À u listessu tempu, hè stata presentata una liberazione significativa di u framework di l'interfaccia d'utilizatore Flutter 2.5, chì hè cunsideratu cum'è una alternativa à React Native è permette, basatu annantu à una basa di codice unicu, di liberà applicazioni per iOS, Android, Windows, macOS è Piattaforme Linux, è ancu creà applicazioni per eseguisce in i navigatori. Una cunchiglia persunalizata per u sistema operatore microkernel Fuchsia sviluppatu da Google hè custruitu nantu à a basa di Flutter.

A parte principale di u codice Flutter hè implementatu in a lingua Dart, è u mutore di runtime per eseguisce applicazioni hè scrittu in C++. Quandu si sviluppa l'applicazioni, in più di a lingua nativa di Dart di Flutter, pudete aduprà l'interfaccia di Funzione Estera di Dart per chjamà codice C/C++. L'alta prestazione di esecuzione hè ottenuta cumpilendu applicazioni in codice nativu per e plataforme di destinazione. In questu casu, u prugramma ùn hà micca bisognu di ricumpià dopu ogni cambiamentu - Dart furnisce un modu di ricaricà caldu chì permette di fà cambiamenti à una applicazione in esecuzione è evaluà immediatamente u risultatu.

Cambiamenti maiò in Flutter 2.5:

  • Fate ottimisazioni di rendiment significativu. Nant'à e plataforme iOS è macOS, a precompilazione di shaders per l'API Metal graphics hè stata implementata. Efficienza mejorata di u trattamentu di l'avvenimenti asincroni. Risolviu un prublema cù ritardi quandu u cullettivu di basura ricunquistà a memoria di l'imaghjini inutilizati (per esempiu, durante a riproduzione di un GIF animatu di 20 seconde, u numeru di operazioni di raccolta di basura hè stata ridutta da 400 à 4. Ritardi quandu passanu missaghji trà Dart è Objective- C / Swift sò stati ridotti à 50% (iOS) o Java / Kotlin (Android) Aggiuntu supportu nativu di custruzzione per i sistemi basati nantu à u chip Apple Silicon.
    Lingua Dart 2.14 è framework Flutter 2.5 dispunibule
  • Per a piattaforma Android, hè statu stabilitu u supportu per eseguisce l'applicazioni in u modu di schermu pienu. L'implementazione di u cuncettu di cuncepimentu "Material You", presentatu cum'è una opzione di Design Materiale di a prossima generazione, hà cuntinuatu. Aggiuntu un novu statu MaterialState.scrolledUnder, implementatu a visualizazione dinamica di scroll bars quandu si ridimensiona, è prupone una nova interfaccia per vede banners di notificazione.
  • E capacità di u plug-in di a camera sò state allargate significativamente, aghjunghjendu strumenti per cuntrullà l'autofocus, l'esposizione, u flash, u zoom, a riduzione di u rumore è a risoluzione.
  • Strumenti di sviluppatore (DevTools) sò stati migliurati per include un modu d'ispezione di widget aghjurnatu, è ancu strumenti per identificà i ritardi di rendering è seguite a compilazione di shader.
    Lingua Dart 2.14 è framework Flutter 2.5 dispunibule
  • Plugins migliorati per Visual Studio Code è IntelliJ / Android Studio.

Source: opennet.ru

Add a comment