Llenguatge Dart 2.14 i marc Flutter 2.5 disponibles

Google ha publicat el llançament del llenguatge de programació Dart 2.14, que continua el desenvolupament d'una branca radicalment redissenyada de Dart 2, que es diferencia de la versió original del llenguatge Dart per l'ús d'una mecanografia estàtica forta (els tipus es poden inferir automàticament, de manera que No cal especificar tipus, però ja no s'utilitza l'escriptura dinàmica i es calcula inicialment el tipus s'assigna a la variable i posteriorment s'aplica una comprovació estricta de tipus).

Característiques del llenguatge Dart:

  • Sintaxi familiar i fàcil d'aprendre, natural per als programadors de JavaScript, C i Java.
  • Garantint un llançament ràpid i un alt rendiment per a tots els navegadors web moderns i diversos tipus d'entorns, des de dispositius portàtils fins a servidors potents.
  • La capacitat de definir classes i interfícies que permetin encapsular i reutilitzar mètodes i dades existents.
  • L'especificació de tipus facilita la depuració i la identificació d'errors, fa que el codi sigui més clar i llegible i simplifica la seva modificació i anàlisi per part de desenvolupadors de tercers.
  • Els tipus admesos inclouen: diversos tipus de hash, matrius i llistes, cues, tipus numèrics i de cadena, tipus per determinar la data i l'hora, expressions regulars (RegExp). És possible crear els vostres propis tipus.
  • Per organitzar l'execució paral·lela, es proposa utilitzar classes amb l'atribut aïllat, el codi de les quals s'executa completament en un espai aïllat en una àrea de memòria separada, interactuant amb el procés principal mitjançant l'enviament de missatges.
  • Suport per a l'ús de biblioteques que simplifiquen el suport i la depuració de grans projectes web. Les implementacions de funcions de tercers es poden incloure en forma de biblioteques compartides. Les aplicacions es poden dividir en parts i confiar el desenvolupament de cada part a un equip independent de programadors.
  • Un conjunt d'eines preparades per donar suport al desenvolupament en llenguatge Dart, inclosa la implementació de desenvolupament dinàmic i eines de depuració amb correcció de codi sobre la marxa ("editar i continuar").
  • Per simplificar el desenvolupament en el llenguatge Dart, ve amb un SDK, un gestor de paquets pub, un analitzador de codi estàtic dart_analyzer, un conjunt de biblioteques, un entorn de desenvolupament integrat DartPad i connectors habilitats per Dart per a IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 i Vim.
  • Paquets addicionals amb biblioteques i utilitats es distribueixen a través del repositori pub, que té més de 20 mil paquets.

Canvis importants a la versió de Dart 2.14:

  • S'ha afegit un nou operador de triple desplaçament (>>>), que, a diferència de l'operador “>>”, no realitza una aritmètica, sinó un desplaçament lògic que funciona sense tenir en compte el bit de signe (el desplaçament es realitza sense dividir en nombres positius i negatius).
  • S'ha eliminat la restricció als arguments de tipus que impedia que els tipus de funció genèrics s'utilitzin com a argument de tipus. Per exemple, ara podeu especificar: late List (T)>idFunctions; var devolució de trucada = [ (valor T) => valor]; late S Funció (T)>(S) f;
  • Permet especificar arguments amb tipus en anotacions com ara @Obsolet. Per exemple, ara podeu especificar: @TypeHelper (42, "El significat")
  • Els mètodes estàtics hash, hashAll i hashAllUnordered s'han afegit a la biblioteca estàndard (nucli) a la classe Object. La classe DateTime ha millorat el maneig de l'hora local en convertir els rellotges entre l'hora d'estiu i l'hivern que no són divisibles per una hora (per exemple, a Austràlia s'utilitza un desplaçament de 30 minuts). El paquet ffi ha afegit suport per al mecanisme d'assignació de memòria arena, que allibera recursos automàticament. El paquet ffigen ha afegit la possibilitat de generar definicions typedef de tipus Dart a partir del llenguatge C.
  • Els 250 paquets més populars del repositori pub.dev i el 94% dels 1000 principals s'han canviat a l'ús del mode de "seguretat nul·la", que evitarà bloquejos causats per intents d'utilitzar variables el valor de les quals no està definit i definit com a "Null". "" El mode implica que les variables no poden tenir valors nuls tret que se'ls assigni explícitament el valor nul. El mode respecta estrictament els tipus de variables, cosa que permet al compilador aplicar optimitzacions addicionals. El compliment del tipus es verifica en temps de compilació, per exemple, si intenteu assignar el valor "Nul" a una variable amb un tipus que no implica un estat indefinit, com ara "int", es mostrarà un error.
  • Es proposen conjunts unificats de regles per a l'analitzador de codi (linter), que ofereixen suport simultània per comprovar el compliment de les directrius d'estil de codi per a Dart i el framework Flutter. Per raons històriques, les regles de codificació per a Flutter i Dart eren diferents, a més, per a Dart hi havia dos conjunts de regles en ús: les pedants de Google i les regles de la comunitat de desenvolupadors de Dart. Dart 2.14 introdueix un nou conjunt de regles comuns per a linter, que es decideix que s'utilitzarà per defecte en nous projectes de Dart i al Flutter SDK. El conjunt inclou regles bàsiques (paquet lints/core.yaml), regles addicionals recomanades (lints/recommended.yaml) i recomanacions específiques de Flutter (flutter_lints/flutter.yaml). Es recomana als usuaris de regles pedants que canviïn a utilitzar un nou estil de codificació basat en les recomanacions de la documentació de Dart.
  • En el formatador, s'han fet optimitzacions en el format dels blocs de codi en cascada, que poden millorar significativament el rendiment del format i evitar una interpretació ambigua de la propietat dels elements d'expressió. Per exemple, cridant "..doIt" a l'expressió "var resultat = errorState ? foo : bad..doIt()” no es refereix a la part condicional del bloc “dolent”, sinó a tota l'expressió, de manera que quan es formatea ara es separa: var resultat = errorState ? foo : dolent ..doIt();
  • S'ha afegit suport per als processadors Apple M1 (Silicon) a l'SDK, la qual cosa implica la possibilitat d'executar Dart VM, utilitats i components SDK en sistemes amb un processador Apple Silicon, i suport per compilar fitxers executables per a aquests xips.
  • L'ordre "dart pub" ha afegit suport per a un nou fitxer de servei ".pubignore", que us permet definir una llista de fitxers que es saltaran en publicar un paquet al repositori pub.dev. Aquests paràmetres no interfereixen amb la llista d'ignorar ".gitignore" (en algunes situacions, pub.dev pot voler evitar transferir fitxers que es necessiten a Git, per exemple, els scripts interns utilitzats durant el desenvolupament).
  • S'ha treballat per millorar el rendiment de l'ordre "dart test", que ara no requereix recompilar proves després de canviar pubspec si el número de versió no ha canviat.
  • S'ha deixat de suportar la compilació en mode de compatibilitat ECMAScript 5 (el canvi provocarà la pèrdua de compatibilitat amb el navegador IE11).
  • Les utilitats individuals stagehand, dartfmt i dart2native s'han declarat obsoletes, substituïdes per ordres integrades trucades mitjançant la utilitat dart.
  • El mecanisme d'extensions natives de VM ha quedat obsolet. Per trucar al codi natiu des del codi Dart, es recomana utilitzar el nou Dart FFI (Foreign Function Interface).

Al mateix temps, es va presentar una versió significativa del framework d'interfície d'usuari Flutter 2.5, que es considera una alternativa a React Native i que permet, a partir d'una base de codi, llançar aplicacions per a iOS, Android, Windows, macOS i Linux. plataformes, així com crear aplicacions per executar-se en navegadors. Un shell personalitzat per al sistema operatiu de micronucli Fuchsia desenvolupat per Google està construït a partir de Flutter.

La part principal del codi Flutter s'implementa en el llenguatge Dart i el motor d'execució per executar aplicacions està escrit en C++. Quan desenvolupeu aplicacions, a més del llenguatge Dart natiu de Flutter, podeu utilitzar la interfície de la funció estrangera de Dart per cridar codi C/C++. S'aconsegueix un alt rendiment d'execució compilant aplicacions en codi natiu per a plataformes de destinació. En aquest cas, no cal recompilar el programa després de cada canvi: Dart ofereix un mode de recàrrega en calent que us permet fer canvis a una aplicació en execució i avaluar immediatament el resultat.

Canvis importants a Flutter 2.5:

  • S'han fet importants optimitzacions de rendiment. A les plataformes iOS i macOS, s'ha implementat la compilació prèvia de shaders per a l'API de gràfics de metall. Millora de l'eficiència del processament d'esdeveniments asíncrons. S'ha resolt un problema amb retards quan el col·lector d'escombraries recupera la memòria d'imatges no utilitzades (per exemple, durant la reproducció d'un GIF animat de 20 segons, el nombre d'operacions de recollida d'escombraries es va reduir de 400 a 4. Retards en passar missatges entre Dart i Objective- C/Swift es va reduir al 50% (iOS) o Java/Kotlin (Android) S'ha afegit suport de construcció nativa per a sistemes basats en el xip Apple Silicon.
    Llenguatge Dart 2.14 i marc Flutter 2.5 disponibles
  • Per a la plataforma Android, s'ha establert el suport per executar aplicacions en mode de pantalla completa. La implementació del concepte de disseny "Material You", presentat com una opció de disseny de materials de nova generació, va continuar. S'ha afegit un nou estat MaterialState.scrolledUnder, s'ha implementat la visualització dinàmica de les barres de desplaçament quan es redimensiona i s'ha proposat una nova interfície per mostrar bàners de notificació.
  • Les capacitats del complement de la càmera s'han ampliat significativament, afegint eines per controlar l'enfocament automàtic, l'exposició, el flaix, el zoom, la reducció de soroll i la resolució.
  • Les eines per a desenvolupadors (DevTools) s'han millorat per incloure un mode d'inspecció de widgets actualitzat, així com eines per identificar retards en la representació i la compilació d'ombres de seguiment.
    Llenguatge Dart 2.14 i marc Flutter 2.5 disponibles
  • Complements millorats per a Visual Studio Code i IntelliJ/Android Studio.

Font: opennet.ru

Afegeix comentari