Saadaval on Dart 2.14 keel ja Flutter 2.5 raamistik

Google avaldas programmeerimiskeele Dart 2.14 väljalase, mis jätkab Dart 2 radikaalselt ümberkujundatud haru arendamist, mis erineb Dart keele algversioonist tugeva staatilise tippimise kasutamise poolest (tüüpe saab järeldada automaatselt, nii et tüüpide määramine pole vajalik, kuid dünaamilist tippimist enam ei kasutata ja algselt arvutatakse tüüp muutujale ja seejärel rakendatakse ranget tüübikontrolli).

Dart keele omadused:

  • Tuttav ja hõlpsasti õpitav süntaks, mis on loomulik JavaScripti, C ja Java programmeerijatele.
  • Kiire käivitamise ja suure jõudluse tagamine kõikidele kaasaegsetele veebibrauseritele ja erinevat tüüpi keskkondadele, alates kaasaskantavatest seadmetest kuni võimsate serveriteni.
  • Võimalus määratleda klasse ja liideseid, mis võimaldavad olemasolevate meetodite ja andmete kapseldamist ja taaskasutamist.
  • Tüüpide määramine muudab silumise ja vigade tuvastamise lihtsamaks, muudab koodi selgemaks ja loetavamaks ning lihtsustab selle muutmist ja analüüsi kolmandate osapoolte arendajate poolt.
  • Toetatud tüübid hõlmavad järgmist: erinevat tüüpi räsid, massiivid ja loendid, järjekorrad, numbri- ja stringitüübid, kuupäeva ja kellaaja määramise tüübid, regulaaravaldised (RegExp). Võimalik luua oma tüüpe.
  • Paralleelse täitmise korraldamiseks tehakse ettepanek kasutada isolaatribuudiga klasse, mille kood täidetakse täielikult isoleeritud ruumis eraldi mälualal, suheldes põhiprotsessiga sõnumite saatmise teel.
  • Suurte veebiprojektide toetamist ja silumist lihtsustavate teekide kasutamise tugi. Funktsioonide kolmanda osapoole juurutused saab kaasata jagatud teekide kujul. Rakendusi saab jagada osadeks ja usaldada iga osa arendamise eraldi programmeerijate meeskonnale.
  • Valmis tööriistade komplekt Dart-keele arenduse toetamiseks, sealhulgas dünaamiliste arendus- ja silumistööriistade rakendamine koos koodiparandusega (“redigeeri ja jätka”).
  • Dart-keele arendamise lihtsustamiseks on sellega kaasas SDK, paketihalduri pubi, staatiline koodianalüsaator dart_analyzer, teekide komplekt, integreeritud arenduskeskkond DartPad ja Dart-toega pistikprogrammid IntelliJ IDEA, WebStormi, Emacsi, Sublime Text jaoks. 2 ja Vim.
  • Täiendavaid pakette koos teekide ja utiliitidega levitatakse pubihoidla kaudu, milles on üle 20 tuhande paketti.

Peamised muudatused Dart 2.14 versioonis:

  • Lisatud on uus kolmekordse nihke operaator (>>>), mis erinevalt operaatorist “>>” teostab mitte aritmeetilist, vaid loogilist nihet, mis toimib ilma märgibitti arvestamata (nihutamine toimub ilma jagamiseta positiivsed ja negatiivsed arvud).
  • Eemaldati tüübiargumentide piirang, mis takistas üldiste funktsioonitüüpide kasutamist tüübiargumendina. Näiteks saate nüüd määrata: hiline loend (T)>idFunctions; var callback = [ (T väärtus) => väärtus]; hiline S-funktsioon (T)>(S) f;
  • Lubage annotatsioonides argumentide täpsustamist tüüpidega, näiteks @Deprecated. Näiteks saate nüüd määrata: @TypeHelper (42, "Tähendus")
  • Staatilised meetodid hash, hashAll ja hashAllUnordered on lisatud klassi Object standardteeki (tuum). Klassis DateTime on paranenud kohaliku aja käsitlemine suve- ja talveaja vahel kellade vahetamisel, mis ei jagu ühe tunniga (näiteks Austraalias kasutatakse nihet 30 minutit). Pakett ffi on lisanud tuge areeni mälujaotusmehhanismile, mis vabastab automaatselt ressursse. Pakett ffigen on lisanud võimaluse genereerida C-keelest Dart tüüpide typedef-definitsioone.
  • 250 kõige populaarsemat paketti pub.dev hoidlast ja 94% top-1000 paketist on lülitatud "null-turvarežiimile", mis hoiab ära krahhid, mis on põhjustatud katsetest kasutada muutujaid, mille väärtus on määramata ja seatud väärtusele "Null". "" Režiim tähendab, et muutujatel ei saa olla nullväärtusi, välja arvatud juhul, kui neile on otseselt määratud väärtus null. Režiim järgib rangelt muutujatüüpe, mis võimaldab kompilaatoril rakendada täiendavaid optimeerimisi. Tüübi vastavust kontrollitakse kompileerimise ajal, näiteks kui proovite omistada väärtust "Null" muutujale, mille tüüp ei viita määratlemata olekule, näiteks "int", kuvatakse tõrge.
  • Pakutakse välja koodianalüsaatori (linter) ühtsed reeglistikud, mis pakuvad samaaegset tuge Darti ja Flutteri raamistiku koodistiili juhistele vastavuse kontrollimiseks. Ajaloolistel põhjustel olid Flutteri ja Darti kodeerimisreeglid erinevad, lisaks oli Darti jaoks kasutusel kaks reeglite komplekti - Google'i pedantsed ja Darti arendajate kogukonna reeglid. Dart 2.14 tutvustab linteri jaoks uusi ühiseid reegleid, mida otsustatakse uutes Darti projektides ja Flutteri SDK-s vaikimisi kasutada. Komplekt sisaldab põhireegleid (pakett lints/core.yaml), soovitatud lisareegleid (lints/recommended.yaml) ja Flutter-spetsiifilisi soovitusi (flutter_lints/flutter.yaml). Pedantsete reeglite kasutajatel soovitatakse Darti dokumentatsiooni soovituste põhjal üle minna uuele kodeerimisstiilile.
  • Vormindaja puhul on optimeeritud kaskaadkoodiplokkide vormindamist, mis võib oluliselt parandada vormindamise jõudlust ja vältida väljendielementide omandiõiguse mitmetähenduslikku tõlgendamist. Näiteks "..doIt" kutsumine avaldises "var result = errorState ? foo : bad..doIt()” ei puuduta mitte ploki “bad” tingimuslikku osa, vaid kogu avaldist, seega on see vormindamisel nüüd eraldatud: var result = errorState ? foo : halb ..doIt();
  • SDK-le on lisatud Apple M1 (Silicon) protsessorite tugi, mis tähendab nii võimalust käitada Dart VM-i, utiliite ja SDK komponente süsteemides, millel on Apple Silicon protsessor, kui ka tuge nende kiipide jaoks käivitatavate failide kompileerimiseks.
  • Käsk "dart pub" on lisanud toe uuele teenusefailile ".pubignore", mis võimaldab teil määratleda failide loendi, mis jäetakse vahele paketi pub.dev hoidlasse avaldamisel. Need sätted ei sega „.gitignore” ignoreerimisloendit (mõnes olukorras võib pub.dev vältida Gitis vajalike failide, näiteks arenduse käigus kasutatavate sisemiste skriptide edastamist).
  • Tööd on tehtud käsu “dart test” jõudluse parandamiseks, mis ei nõua nüüd pärast pubspeci muutmist testide uuesti kompileerimist, kui versiooninumber pole muutunud.
  • ECMAScript 5 ühilduvusrežiimis kompileerimise tugi on lõpetatud (muudatuse tulemuseks on ühilduvuse kaotus IE11 brauseriga).
  • Üksikud utiliidid stagehand, dartfmt ja dart2native on kuulutatud aegunuks, asendatud sisseehitatud käskudega, mida kutsutakse läbi dart-utiliidi.
  • VM-i alglaiendite mehhanism on aegunud. Dart koodist loomuliku koodi kutsumiseks on soovitatav kasutada uut Dart FFI-d (Foreign Function Interface).

Samal ajal esitleti kasutajaliidese raamistiku olulist väljalaset Flutter 2.5, mida peetakse React Native'i alternatiiviks ja mis võimaldab ühe koodibaasi alusel väljastada rakendusi iOS, Android, Windows, macOS ja Linuxi platvormidele, samuti luua brauserites töötamiseks rakendusi. Google'i poolt välja töötatud Fuchsia mikrokerneli operatsioonisüsteemi kohandatud kest on üles ehitatud Flutteri baasil.

Põhiosa Flutteri koodist on realiseeritud Dart keeles ja rakenduste käivitamise mootor on kirjutatud C++ keeles. Rakenduste arendamisel saate C/C++ koodi kutsumiseks kasutada lisaks Flutteri emakeelsele Dart-keelele Dart Foreign Functioni liidest. Kõrge täitmise jõudlus saavutatakse rakenduste kompileerimisega sihtplatvormide natiivseks koodiks. Sellisel juhul ei pea programmi pärast iga muudatust uuesti kompileerima – Dart pakub kuuma taaslaadimisrežiimi, mis võimaldab teha muudatusi töötavas rakenduses ja koheselt hinnata tulemust.

Peamised muudatused versioonis Flutter 2.5:

  • Tegi olulisi jõudluse optimeerimisi. iOS-i ja macOS-i platvormidel on Metal graafika API varjundite eelkompileerimine rakendatud. Parem asünkroonsete sündmuste töötlemise efektiivsus. Lahendatud on viivituste probleem, kui prügikoguja võtab kasutamata piltidelt mälu tagasi (näiteks 20-sekundilise animeeritud GIF-i taasesituse ajal vähendati prügikoristustoimingute arvu 400-lt 4-le. Viivitused sõnumite edastamisel Darti ja Objective- vahel C/Swift vähendati 50%-ni (iOS) või Java/Kotlin (Android). Lisatud on Apple Silicon kiibil põhinevate süsteemide loomulik ehitustugi.
    Saadaval on Dart 2.14 keel ja Flutter 2.5 raamistik
  • Androidi platvormi jaoks on loodud rakenduste täisekraanrežiimis käitamise tugi. Jätkus järgmise põlvkonna materjalidisaini variandina esitletud disainikontseptsiooni “Material You” juurutamine. Lisati uus olek MaterialState.scrolledUnder, rakendati suuruse muutmisel kerimisribade dünaamilist kuvamist ja pakuti välja teavitusbännerite kuvamiseks uus liides.
  • Kaamera lisandmooduli võimalusi on oluliselt laiendatud, lisades tööriistu autofookuse, särituse, välgu, suumi, müra vähendamise ja eraldusvõime juhtimiseks.
  • Arendaja tööriistu (DevTools) on täiustatud, et hõlmata värskendatud vidina kontrollimise režiimi, samuti tööriistu renderdamisviivituste tuvastamiseks ja varjutajate kompileerimise jälgimiseks.
    Saadaval on Dart 2.14 keel ja Flutter 2.5 raamistik
  • Täiustatud pistikprogrammid Visual Studio Code ja IntelliJ/Android Studio jaoks.

Allikas: opennet.ru

Lisa kommentaar