Dart 2.14-sprog og Flutter 2.5-ramme tilgængelig

Google har udgivet en udgivelse af programmeringssproget Dart 2.14, som fortsætter udviklingen af ​​en radikalt redesignet Dart 2-gren, som adskiller sig fra den originale version af Dart-sproget ved at bruge stærk statisk skrivning (typer kan automatisk udledes, så angivelse af typer er ikke påkrævet, men dynamisk indtastning bruges ikke længere og blev beregnet i første omgang, typen tildeles variablen, og derefter anvendes streng typekontrol).

Dart sprogfunktioner:

  • En velkendt og nem at lære syntaks, der er naturlig for JavaScript-, C- og Java-programmører.
  • Giver hurtig opstart og høj ydeevne til alle moderne webbrowsere og forskellige typer miljøer, fra bærbare enheder til kraftfulde servere.
  • Evnen til at definere klasser og grænseflader for at muliggøre indkapsling og genbruge eksisterende metoder og data.
  • Angivelse af typer gør det lettere at fejlfinde og opdage fejl, gør koden klarere og mere læsbar og gør det nemmere for tredjepartsudviklere at forfine og analysere den.
  • Blandt de understøttede typer: forskellige typer hashes, arrays og lister, køer, numeriske og strengtyper, dato- og tidstyper, regulære udtryk (RegExp). Det er muligt at lave dine egne typer.
  • For at organisere parallel eksekvering foreslås det at bruge klasser med isolate-attributten, hvis kode udføres helt i et isoleret rum i et separat hukommelsesområde, der interagerer med hovedprocessen ved at sende beskeder.
  • Support til brug af biblioteker, der forenkler support og fejlretning af store webprojekter. Tredjepartsimplementeringer af funktioner kan inkluderes som delte biblioteker. Applikationer kan opdeles i dele, og udviklingen af ​​hver del kan tildeles et separat team af programmører.
  • Et sæt af færdiglavede værktøjer til at understøtte udvikling i Dart-sproget, herunder implementering af dynamiske udviklingsværktøjer og fejlretning med kodekorrektion på farten ("rediger-og-fortsæt").
  • En SDK, en pub-pakkemanager, en dart_analyzer statisk kodeanalysator, et sæt biblioteker, en DartPad IDE og Dart-aktiverede plugins til IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 og Vim leveres for at forenkle Dart-udvikling.
  • Yderligere pakker med biblioteker og hjælpeprogrammer distribueres gennem publageret, som har mere end 20 pakker.

Vigtigste ændringer i udgivelsen af ​​Dart 2.14:

  • Der er tilføjet en ny triple shift-operator (>>>), som i modsætning til ">>"-operatoren ikke udfører en aritmetik, men en logisk forskydning, der ikke tager hensyn til fortegnsbitten (skiftet udføres uden opdeling i positive og negative tal).
  • Fjernede begrænsningen på typeargumenter, der forhindrede generiske funktionstyper i at blive brugt som et typeargument. For eksempel kan du nu angive: sen liste (T)>idFunctions; var tilbagekald = [ (T-værdi) => værdi]; sen S Funktion (T)>(S) f;
  • Det er tilladt at angive argumenter med typer i annoteringer såsom @Udgået. For eksempel kan du nu angive: @TypeHelper (42, "Meningen")
  • De statiske metoder hash, hashAll og hashAllUordered er blevet tilføjet til standardbiblioteket (kernen) i Object-klassen. Forbedret behandling af lokal tid i DateTime-klassen ved konvertering af ure mellem sommer- og vintertid, der ikke er et multiplum af en time (f.eks. i Australien bruges en offset på 30 minutter). Ffi-pakken har tilføjet understøttelse af arena-hukommelsesallokeringsmekanismen, som automatisk frigiver ressourcer. Tilføjet muligheden for at generere Dart typedefs fra C til ffigen-pakken.
  • De 250 mest populære pakker fra pub.dev-lageret og 94% af top-1000 er blevet flyttet til at bruge Null-sikkerhedstilstanden, som vil undgå nedbrud forårsaget af forsøg på at bruge variabler, hvis værdi ikke er defineret og sat til Null ". Tilstanden indebærer, at variabler ikke kan have udefinerede værdier, medmindre de udtrykkeligt er sat til null. Tilstanden tager strengt hensyn til typerne af variabler, som gør det muligt for compileren at anvende yderligere optimeringer. Typetilpasning kontrolleres på kompileringstidspunktet, hvis du for eksempel forsøger at tildele værdien "Null" til en variabel med en type, der ikke antyder en ubestemt tilstand, såsom "int", vil der blive vist en fejl.
  • Der foreslås ensartede sæt regler for kodeanalysatoren (linter), som giver samtidig støtte til kontrol af overholdelse af retningslinjerne for kodestil for Dart og Flutter-rammerne. Af historiske årsager var kodningsreglerne for Flutter og Dart forskellige, derudover var der for Dart to sæt regler i hverdagen - pedantisk fra Google og regler fra Dart-udviklerfællesskabet. Dart 2.14 introducerer et nyt generelt regelsæt for linter, som er standard for nye Dart-projekter og Flutter SDK. Sættet indeholder kerneregler (lints/core.yaml-pakke), anbefalede yderligere regler (lints/recommended.yaml) og Flutter-specifikke anbefalinger (flutter_lints/flutter.yaml). Brugere af pedantiske regler opfordres til at skifte til at bruge den nye kodningsstil baseret på anbefalingerne i Dart-dokumentationen.
  • I formatering er der foretaget optimeringer af formateringen af ​​kaskadende kodeblokke, hvilket kan forbedre formateringsydelsen betydeligt og undgå tvetydig fortolkning af ejerskabet af udtrykselementer. For eksempel kalder "..doIt" i udtrykket "var result = errorState ? foo : bad..doIt()" henviser ikke til den betingede del af "bad" blokken, men til hele udtrykket, så det er nu adskilt ved formatering: var result = errorState ? foo : dårlig ..doIt();
  • Understøttelse af Apple M1 (Silicon)-processorer er blevet tilføjet til SDK, hvilket indebærer både muligheden for at køre Dart VM, hjælpeprogrammer og SDK-komponenter på systemer med en Apple Silicon-processor, samt understøttelse af kompilering af eksekverbare filer til disse chips.
  • Understøttelse af en ny servicefil ".pubignore" er blevet tilføjet til kommandoen "dart pub", som giver dig mulighed for at angive en liste over filer, der vil blive sprunget over, når du udgiver en pakke til pub.dev-lageret. Disse indstillinger forstyrrer ikke ignoreringslisten ".gitignore" (i nogle situationer skal pub.dev ikke begå filer, som Git har brug for, såsom interne udviklingsscripts).
  • Der er blevet arbejdet på at forbedre ydelsen af ​​kommandoen "dart test", som nu ikke kræver genkompilering af test efter ændring af pubspec, hvis versionsnummeret ikke er ændret.
  • Mistet understøttelse af kompilering i ECMAScript 5-kompatibilitetstilstand (ændring vil resultere i tab af kompatibilitet med IE11).
  • De selvstændige stagehand-, dartfmt- og dart2native-værktøjer er blevet forældet, erstattet af indbyggede kommandoer, der kaldes gennem dart-værktøjet.
  • VM Native Extensions-mekanismen er blevet udfaset. For at kalde indfødt kode fra Dart-kode anbefales det at bruge den nye Dart FFI (Foreign Function Interface).

Samtidig præsenteres en betydelig udgivelse af Flutter 2.5-brugergrænsefladerammen, som betragtes som et alternativ til React Native og giver dig mulighed for at frigive applikationer til iOS, Android, Windows, macOS og Linux platforme baseret på en enkelt kodebase, samt oprette applikationer til at køre i browsere. På basis af Flutter er brugerskallen til Fuchsia-mikrokerne-operativsystemet udviklet af Google bygget.

Størstedelen af ​​Flutter-koden er implementeret i Dart, og runtime-motoren til at køre applikationer er skrevet i C++. Når du udvikler applikationer, kan du ud over Flutters oprindelige Dart-sprog bruge Dart Foreign Function-grænsefladen til at kalde C/C++-kode. Høj runtime ydeevne opnås ved at kompilere applikationer til indbygget kode til målplatforme. Samtidig behøver programmet ikke at blive rekompileret efter hver ændring - Dart giver en hot reload-tilstand, der giver dig mulighed for at foretage ændringer i en kørende applikation og straks evaluere resultatet.

Større ændringer i Flutter 2.5:

  • Der er foretaget væsentlige ydelsesoptimeringer. Shader-prækompilering til Metal graphics API er blevet implementeret på iOS- og macOS-platforme. Forbedret effektivitet ved håndtering af asynkrone hændelser. Rettede et problem med forsinkelser, når skraldeopsamleren frigør hukommelse fra ubrugte billeder (for eksempel, under afspilning af en 20 sekunders animeret GIF, er antallet af skraldeindsamlingshandlinger blevet reduceret fra 400 til 4. Latency ved videregivelse af beskeder mellem Dart og Objective-C / Swift er blevet reduceret med op til 50 % (iOS) eller Java/Kotlin (Android) Tilføjet native build-understøttelse til systemer baseret på Apple Silicon-chippen.
    Dart 2.14-sprog og Flutter 2.5-ramme tilgængelig
  • For Android-platformen er der etableret understøttelse for at køre applikationer i fuldskærmstilstand. Implementeringen af ​​designkonceptet "Material You", præsenteret som en variant af den næste generation af Material Design, fortsatte. En ny tilstand MaterialState.scrolledUnder er blevet tilføjet, rullepaneler vises dynamisk, når størrelsen ændres, og en ny grænseflade til visning af meddelelsesbannere er blevet foreslået.
  • Kameraets plug-in er blevet udvidet kraftigt med kontroller til autofokus, eksponering, blitz, zoom, støjreduktion og opløsning.
  • Udviklerværktøjer (DevTools) er blevet forbedret med en opdateret widgetinspektionstilstand samt værktøjer til at detektere gengivelsesforsinkelser og spore shader-kompilering.
    Dart 2.14-sprog og Flutter 2.5-ramme tilgængelig
  • Forbedrede plugins til Visual Studio Code og IntelliJ/Android Studio.

Kilde: opennet.ru

Tilføj en kommentar