Galima „Dart 2.14“ kalba ir „Flutter 2.5“ sistema

„Google“ paskelbė „Dart 2.14“ programavimo kalbos leidimą, kuris tęsia radikaliai pertvarkytos „Dart 2“ šakos kūrimą, kuri skiriasi nuo pradinės „Dart“ kalbos versijos naudojant stiprų statinį rašymą (tipus galima nustatyti automatiškai, todėl tipų nurodyti nebūtina, tačiau dinaminis spausdinimas nebenaudojamas ir iš pradžių apskaičiuojamas tipas priskiriamas kintamajam, o vėliau taikoma griežta tipo patikra).

Dart kalbos ypatybės:

  • Pažįstama ir lengvai išmokstama sintaksė, natūrali JavaScript, C ir Java programuotojams.
  • Užtikrinamas greitas paleidimas ir didelis našumas visoms šiuolaikinėms žiniatinklio naršyklėms ir įvairių tipų aplinkoms, nuo nešiojamųjų įrenginių iki galingų serverių.
  • Galimybė apibrėžti klases ir sąsajas, kurios leidžia inkapsuliuoti ir pakartotinai naudoti esamus metodus ir duomenis.
  • Nurodę tipus lengviau derinti ir nustatyti klaidas, kodas tampa aiškesnis ir lengviau skaitomas, o trečiųjų šalių kūrėjams lengviau jį keisti ir analizuoti.
  • Palaikomi tipai: įvairūs maišos tipai, masyvai ir sąrašai, eilės, skaitiniai ir eilučių tipai, datos ir laiko nustatymo tipai, reguliarios išraiškos (RegExp). Galima susikurti savo tipus.
  • Lygiagrečiam vykdymui organizuoti siūloma naudoti klases su atributu izoliuoti, kurių kodas visiškai vykdomas izoliuotoje erdvėje atskiroje atminties srityje, sąveikaujant su pagrindiniu procesu siunčiant pranešimus.
  • Bibliotekų, kurios supaprastina didelių žiniatinklio projektų palaikymą ir derinimą, naudojimo palaikymas. Trečiųjų šalių funkcijų diegimas gali būti įtrauktas į bendrinamų bibliotekų formą. Programas galima suskirstyti į dalis ir kiekvienos dalies kūrimą patikėti atskirai programuotojų komandai.
  • Paruoštų įrankių rinkinys, skirtas palaikyti kūrimą Dart kalba, įskaitant dinaminio kūrimo ir derinimo įrankių su kodo taisymu diegimą („redaguoti ir tęsti“).
  • Kad būtų supaprastintas Dart kalbos kūrimas, jis pateikiamas su SDK, paketų tvarkytuvės publikacija, statiniu kodo analizatoriumi dart_analyzer, bibliotekų rinkiniu, integruota kūrimo aplinka DartPad ir „Dart“ įgalintais „IntelliJ IDEA“, „WebStorm“, „Emacs“, „Sublime Text“ papildiniais. 2 ir Vim.
  • Papildomi paketai su bibliotekomis ir komunalinėmis paslaugomis platinami per pub saugyklą, kurioje yra daugiau nei 20 tūkst.

Pagrindiniai Dart 2.14 leidimo pakeitimai:

  • Pridėtas naujas trigubo poslinkio operatorius (>>>), kuris, skirtingai nei „>>“ operatorius, atlieka ne aritmetinį, o loginį poslinkį, kuris veikia neatsižvelgiant į ženklo bitą (pakeitimas atliekamas neskirstant į teigiami ir neigiami skaičiai).
  • Pašalintas tipo argumentų apribojimas, kuris neleido bendrųjų funkcijų tipų naudoti kaip tipo argumento. Pavyzdžiui, dabar galite nurodyti: vėlyvas sąrašas (T)>idFunctions; var callback = [ (T reikšmė) => reikšmė]; vėlyvoji S funkcija (T)>(S) f;
  • Leisti nurodyti argumentus su tipais komentaruose, pvz., @Deprecated. Pavyzdžiui, dabar galite nurodyti: @TypeHelper (42, „prasmė“)
  • Statiniai metodai hash, hashAll ir hashAllUnordered buvo įtraukti į standartinę biblioteką (pagrindinę) Object klasėje. DateTime klasė pagerino vietinio laiko tvarkymą, kai perskaičiuojami laikrodžiai iš vasaros ir žiemos laiko, kurie nesidalija iš vienos valandos (pavyzdžiui, Australijoje naudojamas 30 minučių poslinkis). ffi paketas papildė arenos atminties paskirstymo mechanizmą, kuris automatiškai atleidžia išteklius. Paketas ffigen pridėjo galimybę generuoti Dart tipų typedef apibrėžimus iš C kalbos.
  • 250 populiariausių paketų iš pub.dev saugyklos ir 94% populiariausių 1000 paketų buvo perjungti į „null saugos“ režimą, kuris padės išvengti gedimų, sukeltų bandymų naudoti kintamuosius, kurių reikšmė neapibrėžta ir nustatyta į „Null“. "" Režimas reiškia, kad kintamieji negali turėti nulinių reikšmių, nebent jiems aiškiai priskirta reikšmė null. Režimas griežtai laikosi kintamųjų tipų, todėl kompiliatorius gali pritaikyti papildomus optimizavimus. Tipo atitiktis tikrinama kompiliavimo metu, pavyzdžiui, jei bandysite priskirti reikšmę „Null“ kintamajam, kurio tipas nereiškia neapibrėžtos būsenos, pvz., „int“, bus rodoma klaida.
  • Siūlomi vieningi kodo analizatoriaus (linter) taisyklių rinkiniai, kurie tuo pačiu metu padeda patikrinti, ar laikomasi Dart ir Flutter sistemos kodo stiliaus gairių. Dėl istorinių priežasčių „Flutter“ ir „Dart“ kodavimo taisyklės skyrėsi, be to, „Dart“ buvo naudojami du taisyklių rinkiniai – pedantiškos „Google“ ir „Dart“ kūrėjų bendruomenės taisyklės. „Dart 2.14“ pristato naują bendrų „Linter“ taisyklių rinkinį, kurį pagal numatytuosius nustatymus nuspręsta naudoti naujuose „Dart“ projektuose ir „Flutter“ SDK. Rinkinį sudaro pagrindinės taisyklės (paketas lints/core.yaml), rekomenduojamos papildomos taisyklės (lints/recommended.yaml) ir specifinės „Flutter“ rekomendacijos (flutter_lints/flutter.yaml). Pedantiškų taisyklių naudotojams patariama pereiti prie naujo kodavimo stiliaus, pagrįsto Dart dokumentacijos rekomendacijomis.
  • Formatuotoje buvo optimizuotas pakopinių kodų blokų formatavimas, o tai gali žymiai pagerinti formatavimo našumą ir išvengti dviprasmiško išraiškos elementų nuosavybės aiškinimo. Pavyzdžiui, skambinant „..doIt“ reiškinyje „var result = errorState ? foo : bad..doIt()“ liečia ne sąlyginę „blogo“ bloko dalį, o visą išraišką, todėl formatuojant ji dabar atskiriama: var result = errorState ? foo : blogai ..padaryk();
  • Apple M1 (Silicon) procesorių palaikymas buvo įtrauktas į SDK, nurodant galimybę paleisti Dart VM, komunalines paslaugas ir SDK komponentus sistemose su Apple Silicon procesoriumi ir palaikymą šių lustų vykdomųjų failų kompiliavimui.
  • Komanda „dart pub“ papildė naujos paslaugos failo „.pubignore“ palaikymą, kuris leidžia apibrėžti failų, kurie bus praleisti publikuojant paketą pub.dev saugykloje, sąrašą. Šie nustatymai netrukdo nepaisyti „.gitignore“ sąrašo (kai kuriais atvejais pub.dev gali norėti neperkelti failų, kurių reikia Git, pvz., kūrimo metu naudojamų vidinių scenarijų).
  • Buvo atliktas darbas siekiant pagerinti komandos „dart test“ veikimą, kuriai dabar nereikia perkompiliuoti testų pakeitus pubspec, jei versijos numeris nepasikeitė.
  • Kompiliavimo ECMAScript 5 suderinamumo režimu palaikymas buvo nutrauktas (dėl pakeitimo bus prarastas suderinamumas su IE11 naršykle).
  • Atskiros komunalinės paslaugos stagehand, dartfmt ir dart2native buvo paskelbtos pasenusiomis, pakeistos įtaisytomis komandomis, iškviestomis per dart paslaugų programą.
  • VM savųjų plėtinių mechanizmas nebenaudojamas. Norint iškviesti vietinį kodą iš Dart kodo, rekomenduojama naudoti naują Dart FFI (Foreign Function Interface).

Tuo pačiu metu buvo pristatyta reikšminga vartotojo sąsajos sistemos Flutter 2.5 versija, kuri laikoma alternatyva React Native ir leidžia, remiantis viena kodų baze, išleisti programas iOS, Android, Windows, macOS ir Linux. platformose, taip pat kurti programas, kurios veiktų naršyklėse. „Google“ sukurtas „Fuchsia“ mikrobranduolių operacinės sistemos apvalkalas yra sukurtas „Flutter“ pagrindu.

Pagrindinė Flutter kodo dalis yra įdiegta Dart kalba, o programų vykdymo variklis yra parašytas C++. Kurdami programas, be gimtosios „Flutter“ Dart kalbos, galite naudoti „Dart Foreign Function“ sąsają, kad iškviestumėte C/C++ kodą. Didelis vykdymo našumas pasiekiamas kompiliuojant programas į vietinį tikslinių platformų kodą. Tokiu atveju programos nereikia perkompiliuoti po kiekvieno pakeitimo – „Dart“ suteikia karšto perkrovimo režimą, leidžiantį atlikti veikiančios programos pakeitimus ir iš karto įvertinti rezultatą.

Pagrindiniai „Flutter 2.5“ pakeitimai:

  • Atliko reikšmingus našumo optimizavimus. „IOS“ ir „MacOS“ platformose įdiegtas išankstinis „Metal graphics API“ šešėlių kompiliavimas. Pagerintas asinchroninių įvykių apdorojimo efektyvumas. Išspręsta vėlavimų problema, kai šiukšlių rinkėjas atkuria atmintį iš nenaudojamų vaizdų (pavyzdžiui, atkuriant 20 sekundžių animuotą GIF, šiukšlių surinkimo operacijų skaičius sumažintas nuo 400 iki 4. Vėlavimai perduodant pranešimus tarp Dart ir Objective- „C/Swift“ buvo sumažintas iki 50% („iOS“) arba „Java“ / „Kotlin“ („Android“). Pridėtas vietinis „Apple Silicon“ lusto pagrindu veikiančių sistemų palaikymas.
    Galima „Dart 2.14“ kalba ir „Flutter 2.5“ sistema
  • „Android“ platformoje sukurtas palaikymas programų paleidimui viso ekrano režimu. Buvo tęsiamas dizaino koncepcijos „Material You“, pristatytos kaip naujos kartos Material Design variantas, įgyvendinimas. Pridėta nauja būsena MaterialState.scrolledUnder, įdiegtas dinaminis slinkties juostų rodymas keičiant dydį ir pasiūlyta nauja sąsaja pranešimų reklamjuosčiams rodyti.
  • Kameros papildinio galimybės buvo gerokai išplėstos, pridėjus automatinio fokusavimo, ekspozicijos, blykstės, priartinimo, triukšmo mažinimo ir raiškos valdymo įrankius.
  • Kūrėjo įrankiai (DevTools) buvo patobulinti, įtraukiant atnaujintą valdiklių tikrinimo režimą, taip pat įrankius, skirtus atvaizdavimo delsoms nustatyti ir šešėlių kompiliavimui sekti.
    Galima „Dart 2.14“ kalba ir „Flutter 2.5“ sistema
  • Patobulinti „Visual Studio Code“ ir „IntelliJ“ / „Android Studio“ papildiniai.

Šaltinis: opennet.ru

Добавить комментарий