Në dispozicion gjuha Dart 2.14 dhe korniza Flutter 2.5

Google ka publikuar lëshimin e gjuhës së programimit Dart 2.14, e cila vazhdon zhvillimin e një dege të ridizajnuar rrënjësisht të Dart 2, e cila ndryshon nga versioni origjinal i gjuhës Dart nga përdorimi i shtypjes së fortë statike (llojet mund të konkludohen automatikisht, kështu që specifikimi i llojeve nuk është i nevojshëm, por shtypja dinamike nuk përdoret më dhe e llogaritur fillimisht lloji i caktohet variablës dhe më pas zbatohet kontrolli i rreptë i tipit).

Karakteristikat e gjuhës Dart:

  • Sintaksë e njohur dhe e lehtë për t'u mësuar, e natyrshme për programuesit JavaScript, C dhe Java.
  • Sigurimi i lëshimit të shpejtë dhe performancës së lartë për të gjithë shfletuesit modern të uebit dhe lloje të ndryshme mjedisesh, nga pajisjet portative deri te serverët e fuqishëm.
  • Aftësia për të përcaktuar klasat dhe ndërfaqet që lejojnë kapsulimin dhe ripërdorimin e metodave dhe të dhënave ekzistuese.
  • Specifikimi i llojeve e bën më të lehtë korrigjimin dhe identifikimin e gabimeve, e bën kodin më të qartë dhe më të lexueshëm dhe thjeshton modifikimin dhe analizën e tij nga zhvilluesit e palëve të treta.
  • Llojet e mbështetura përfshijnë: lloje të ndryshme hasesh, vargje dhe lista, radhë, lloje numerike dhe vargjesh, lloje për përcaktimin e datës dhe orës, shprehje të rregullta (RegExp). Është e mundur të krijoni llojet tuaja.
  • Për të organizuar ekzekutimin paralel, propozohet përdorimi i klasave me atributin izolues, kodi i të cilave ekzekutohet tërësisht në hapësirë ​​të izoluar në një zonë të veçantë memorie, duke ndërvepruar me procesin kryesor duke dërguar mesazhe.
  • Mbështetje për përdorimin e bibliotekave që thjeshtojnë mbështetjen dhe korrigjimin e projekteve të mëdha në internet. Implementimet e funksioneve nga palët e treta mund të përfshihen në formën e bibliotekave të përbashkëta. Aplikacionet mund të ndahen në pjesë dhe t'i besojnë zhvillimin e secilës pjesë një ekipi të veçantë programuesish.
  • Një grup mjetesh të gatshme për të mbështetur zhvillimin në gjuhën Dart, duke përfshirë zbatimin e mjeteve dinamike të zhvillimit dhe korrigjimit me korrigjim kodi në fluturim ("redakto dhe vazhdo").
  • Për të thjeshtuar zhvillimin në gjuhën Dart, ai vjen me një SDK, një lokal të menaxherit të paketave, një analizues statik të kodit dart_analyzer, një grup bibliotekash, një mjedis zhvillimi të integruar DartPad dhe shtojca të aktivizuara me Dart për IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 dhe Vim.
  • Paketa shtesë me biblioteka dhe shërbime shpërndahen përmes magazinës së pijetores, e cila ka më shumë se 20 mijë pako.

Ndryshimet kryesore në lëshimin e Dart 2.14:

  • Është shtuar një operator i ri me ndërrim të trefishtë (>>>), i cili, ndryshe nga operatori ">>", nuk kryen një zhvendosje aritmetike, por një zhvendosje logjike që funksionon pa marrë parasysh bitin e shenjës (ndërrimi kryhet pa u ndarë në numra pozitivë dhe negativë).
  • U hoq kufizimi në argumentet e tipit që pengoi përdorimin e llojeve të funksioneve gjenerike si argument tipi. Për shembull, tani mund të specifikoni: Listë e vonuar (T)>idFunctions; var kthimi i thirrjes = [ (vlera T) => vlera]; Funksioni S i vonë (T)>(S) f;
  • Lejo specifikimin e argumenteve me lloje në shënime të tilla si @Deprecated. Për shembull, tani mund të specifikoni: @TypeHelper (42, "Kuptimi")
  • Metodat statike hash, hashAll dhe hashAllUnordered janë shtuar në bibliotekën standarde (bërthamë) në klasën Object. Klasa DateTime ka përmirësuar trajtimin e orës lokale kur konverton orët midis orës verore dhe dimrit që nuk ndahen me një orë (për shembull, në Australi përdoret një zhvendosje prej 30 minutash). Paketa ffi ka shtuar mbështetje për mekanizmin e shpërndarjes së kujtesës në arenë, i cili lëshon automatikisht burimet. Paketa ffigen ka shtuar aftësinë për të gjeneruar përkufizime typedef të llojeve Dart nga gjuha C.
  • 250 paketat më të njohura nga depoja pub.dev dhe 94% e top-1000 janë kaluar në përdorimin e modalitetit "null Security", i cili do të shmangë përplasjet e shkaktuara nga përpjekjet për të përdorur variabla, vlera e të cilave është e papërcaktuar dhe e vendosur në "Null". "" Modaliteti nënkupton që variablat nuk mund të kenë vlera null nëse atyre nuk u është caktuar në mënyrë eksplicite vlera null. Modaliteti respekton rreptësisht llojet e variablave, gjë që lejon përpiluesin të aplikojë optimizime shtesë. Pajtueshmëria e tipit kontrollohet në kohën e përpilimit, për shembull, nëse përpiqeni t'i caktoni vlerën "Null" një ndryshoreje me një lloj që nuk nënkupton gjendje të pacaktuar, si "int", do të shfaqet një gabim.
  • Propozohen grupe të unifikuara rregullash për analizuesin e kodit (linter), duke ofruar mbështetje të njëkohshme për kontrollin e pajtueshmërisë me udhëzimet e stilit të kodit për Dart dhe kornizën Flutter. Për arsye historike, rregullat e kodimit për Flutter dhe Dart ishin të ndryshme, përveç kësaj, për Dart kishte dy grupe rregullash në përdorim - ato pedantike nga Google dhe rregulla nga komuniteti i zhvilluesve Dart. Dart 2.14 prezanton një grup të ri të përbashkët rregullash për litarin, i cili vendoset të përdoret si parazgjedhje në projektet e reja Dart dhe në Flutter SDK. Kompleti përfshin rregullat bazë (paketë lins/core.yaml), rregulla shtesë të rekomanduara (lints/recommended.yaml) dhe rekomandime specifike për Flutter (flutter_lints/flutter.yaml). Përdoruesit e rregullave pedantike këshillohen të kalojnë në përdorimin e një stili të ri kodimi bazuar në rekomandimet nga dokumentacioni Dart.
  • Në formatues, janë bërë optimizime për formatimin e blloqeve të kodit kaskadë, të cilat mund të përmirësojnë ndjeshëm performancën e formatimit dhe të shmangin interpretimin e paqartë të pronësisë së elementeve të shprehjes. Për shembull, duke thirrur "..doIt" në shprehjen "var result = errorState ? foo : bad..doIt()” nuk ka të bëjë me pjesën e kushtëzuar të bllokut “bad”, por me të gjithë shprehjen, kështu që kur formatohet ajo tani ndahet: var result = errorState ? foo : keq ..doIt();
  • Mbështetja për procesorët Apple M1 (Silicon) është shtuar në SDK, duke nënkuptuar aftësinë për të ekzekutuar Dart VM, shërbimet dhe komponentët SDK në sistemet me një procesor Apple Silicon, dhe mbështetjen për përpilimin e skedarëve të ekzekutueshëm për këto çipa.
  • Komanda "dart pub" ka shtuar mbështetje për një skedar të ri shërbimi ".pubignore", i cili ju lejon të përcaktoni një listë skedarësh që do të anashkalohen kur publikoni një paketë në depon e pub.dev. Këto cilësime nuk ndërhyjnë në listën e injorimit ".gitignore" (në disa situata, pub.dev mund të dëshirojë të shmangë transferimin e skedarëve që nevojiten në Git, për shembull, skriptet e brendshme të përdorura gjatë zhvillimit).
  • Është bërë punë për të përmirësuar performancën e komandës "dart test", e cila tani nuk kërkon ripërpilim të testeve pas ndryshimit të pubspec nëse numri i versionit nuk ka ndryshuar.
  • Mbështetja për përpilimin në modalitetin e përputhshmërisë ECMAScript 5 është ndërprerë (ndryshimi do të rezultojë në humbjen e përputhshmërisë me shfletuesin IE11).
  • Shërbimet individuale stephand, dartfmt dhe dart2native janë deklaruar të vjetëruara, të zëvendësuara nga komandat e integruara të thirrura përmes programit të shigjetës.
  • Mekanizmi VM Native Extensions është zhvlerësuar. Për të thirrur kodin vendas nga kodi Dart, rekomandohet përdorimi i ri i Dart FFI (Ndërfaqja e Funksionit të Huaj).

Në të njëjtën kohë, u prezantua një version i rëndësishëm i kornizës së ndërfaqes së përdoruesit Flutter 2.5, i cili konsiderohet si një alternativë për React Native dhe lejon, bazuar në një bazë kodi, të lëshojë aplikacione për iOS, Android, Windows, macOS dhe Linux. platforma, si dhe krijoni aplikacione për t'u ekzekutuar në shfletues. Një guaskë e personalizuar për sistemin operativ të mikrokernelit Fuchsia e zhvilluar nga Google është ndërtuar në bazë të Flutter.

Pjesa kryesore e kodit Flutter zbatohet në gjuhën Dart, dhe motori i ekzekutimit për ekzekutimin e aplikacioneve është i shkruar në C++. Kur zhvilloni aplikacione, përveç gjuhës Dart amtare të Flutter, mund të përdorni ndërfaqen e funksionit të huaj Dart për të thirrur kodin C/C++. Performanca e lartë e ekzekutimit arrihet duke përpiluar aplikacione në kodin vendas për platformat e synuara. Në këtë rast, programi nuk ka nevojë të ripërpilohet pas çdo ndryshimi - Dart ofron një modalitet të nxehtë të rifreskimit që ju lejon të bëni ndryshime në një aplikacion që funksionon dhe të vlerësoni menjëherë rezultatin.

Ndryshime të mëdha në Flutter 2.5:

  • Bërë optimizime të rëndësishme të performancës. Në platformat iOS dhe macOS, është zbatuar parapërpilimi i shaderëve për API grafike Metal. Efikasiteti i përmirësuar i përpunimit të ngjarjeve asinkrone. Zgjidhet një problem me vonesat kur mbledhësi i mbeturinave rimerr memorien nga imazhet e papërdorura (për shembull, gjatë riprodhimit të një GIF të animuar 20 sekondash, numri i operacioneve të mbledhjes së mbeturinave u reduktua nga 400 në 4. Vonesat gjatë kalimit të mesazheve midis Dart dhe Objective- C/Swift u reduktua në 50% (iOS) ose Java/Kotlin (Android) U shtua mbështetje për ndërtimin e sistemeve të bazuara në çipin Apple Silicon.
    Në dispozicion gjuha Dart 2.14 dhe korniza Flutter 2.5
  • Për platformën Android, është krijuar mbështetje për ekzekutimin e aplikacioneve në modalitetin e ekranit të plotë. Zbatimi i konceptit të dizajnit "Material You", i paraqitur si një opsion i gjeneratës së ardhshme të Design Material, vazhdoi. Shtoi një gjendje të re MaterialState.scrolledUnder, zbatoi shfaqjen dinamike të shiritave të lëvizjes kur ndryshoni madhësinë dhe propozoi një ndërfaqe të re për shfaqjen e banderolave ​​të njoftimeve.
  • Aftësitë e plug-in-it të kamerës janë zgjeruar ndjeshëm, duke shtuar mjete për kontrollin e fokusimit automatik, ekspozimit, blicit, zmadhimit, reduktimit të zhurmës dhe rezolucionit.
  • Mjetet e zhvilluesit (DevTools) janë përmirësuar për të përfshirë një modalitet të përditësuar të inspektimit të miniaplikacioneve, si dhe mjete për identifikimin e vonesave të paraqitjes dhe gjurmimin e përpilimit të shader.
    Në dispozicion gjuha Dart 2.14 dhe korniza Flutter 2.5
  • Shtojca të përmirësuara për Visual Studio Code dhe IntelliJ/Android Studio.

Burimi: opennet.ru

Shto një koment