Dostupni su jezik Dart 2.14 i Flutter 2.5 okvir

Google je objavio izdanje Dart 2.14 programskog jezika, kojim se nastavlja razvoj radikalno redizajniranog Dart 2 grane, koja se razlikuje od originalne verzije Dart jezika po upotrebi jakog statičkog kucanja (tipovi se mogu zaključiti automatski, tako da se specificira tipovi nisu neophodni, ali se više ne koristi dinamičko kucanje i početno izračunavanje tip se dodeljuje varijabli i naknadno se primenjuje stroga provera tipa).

Karakteristike Dart jezika:

  • Poznata i laka za učenje sintaksa, prirodna za JavaScript, C i Java programere.
  • Osiguravanje brzog pokretanja i visokih performansi za sve moderne web pretraživače i razne vrste okruženja, od prijenosnih uređaja do moćnih servera.
  • Sposobnost definisanja klasa i interfejsa koji dozvoljavaju inkapsulaciju i ponovnu upotrebu postojećih metoda i podataka.
  • Navođenje tipova olakšava otklanjanje grešaka i identifikaciju grešaka, čini kod jasnijim i čitljivijim i pojednostavljuje njegovu modifikaciju i analizu od strane programera trećih strana.
  • Podržani tipovi uključuju: različite tipove hashova, nizova i lista, redove, numeričke i nizove tipove, tipove za određivanje datuma i vremena, regularne izraze (RegExp). Moguće je kreirati vlastite tipove.
  • Da bi se organiziralo paralelno izvršavanje, predlaže se korištenje klasa s atributom isolate, čiji se kod izvršava u potpunosti u izolovanom prostoru u zasebnom memorijskom području, u interakciji s glavnim procesom slanjem poruka.
  • Podrška za korištenje biblioteka koje pojednostavljuju podršku i otklanjanje grešaka u velikim web projektima. Implementacije funkcija trećih strana mogu biti uključene u obliku zajedničkih biblioteka. Aplikacije se mogu podijeliti na dijelove i razvoj svakog dijela povjeriti posebnom timu programera.
  • Skup gotovih alata za podršku razvoju na Dart jeziku, uključujući implementaciju alata za dinamički razvoj i otklanjanje grešaka sa ispravkom koda u hodu („uredi i nastavi“).
  • Da bi se pojednostavio razvoj na Dart jeziku, dolazi sa SDK-om, pubom za upravljanje paketima, statičkim analizatorom koda dart_analyzer, skupom biblioteka, integrisanim razvojnim okruženjem DartPad i dodacima omogućenim za Dart za IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 i Vim.
  • Dodatni paketi sa bibliotekama i uslužnim programima distribuiraju se preko pub repozitorija, koji ima više od 20 hiljada paketa.

Glavne promjene u izdanju Dart 2.14:

  • Dodan je novi operator trostrukog pomaka (>>>), koji, za razliku od operatora “>>”, ne izvodi aritmetiku, već logički pomak koji radi bez uzimanja u obzir predznaka (pomak se izvodi bez podjele na pozitivni i negativni brojevi).
  • Uklonjeno je ograničenje za argumente tipa koje je sprečavalo da se generički tipovi funkcija koriste kao argument tipa. Na primjer, sada možete odrediti: kasna lista (T)>idFunctions; var povratni poziv = [ (T vrijednost) => vrijednost]; kasna S funkcija (T)>(S) f;
  • Dozvolite navođenje argumenata s tipovima u napomenama kao što je @Deprecated. Na primjer, sada možete odrediti: @TypeHelper (42, "Značenje")
  • Statičke metode hash, hashAll i hashAllUnordered su dodate standardnoj biblioteci (jezgri) u klasi Object. Klasa DateTime je poboljšala rukovanje lokalnim vremenom kada se pretvaraju satovi između ljetnog i zimskog vremena koji nisu djeljivi sa jednim satom (na primjer, u Australiji se koristi pomak od 30 minuta). ffi paket je dodao podršku za mehanizam dodjele memorije arene, koji automatski oslobađa resurse. Paket ffigen je dodao mogućnost generiranja typedef definicija Dart tipova iz C jezika.
  • 250 najpopularnijih paketa iz pub.dev repozitorija i 94% od top-1000 prebačeno je na korištenje “null safe” moda, čime će se izbjeći padovi uzrokovani pokušajima korištenja varijabli čija je vrijednost nedefinirana i postavljena na “Null” ” " Režim implicira da varijable ne mogu imati null vrijednosti osim ako im se eksplicitno ne dodijeli vrijednost null. Režim striktno poštuje tipove promenljivih, što omogućava kompajleru da primeni dodatne optimizacije. Usklađenost tipa se provjerava u vrijeme kompajliranja, na primjer, ako pokušate dodijeliti vrijednost “Null” varijabli s tipom koji ne podrazumijeva nedefinirano stanje, kao što je “int”, prikazat će se greška.
  • Predloženi su objedinjeni skupovi pravila za analizator koda (linter), koji istovremeno pružaju podršku za provjeru usklađenosti sa smjernicama za stil koda za Dart i Flutter okvir. Iz istorijskih razloga, pravila kodiranja za Flutter i Dart su bila različita, osim toga, za Dart su bila u upotrebi dva skupa pravila - pedantna od Google-a i pravila iz Dart zajednice programera. Dart 2.14 uvodi novi zajednički skup pravila za linter, za koji je odlučeno da se koristi po defaultu u novim Dart projektima iu Flutter SDK. Skup uključuje osnovna pravila (lints/core.yaml paket), preporučena dodatna pravila (lints/recommended.yaml) i preporuke specifične za Flutter (flutter_lints/flutter.yaml). Korisnicima pedantnih pravila savjetujemo da pređu na korištenje novog stila kodiranja na osnovu preporuka iz Dart dokumentacije.
  • U formateru su napravljene optimizacije za formatiranje kaskadnih blokova koda, što može značajno poboljšati performanse formatiranja i izbjeći dvosmisleno tumačenje vlasništva nad elementima izraza. Na primjer, pozivanje "..doIt" u izrazu "var result = errorState ? foo : bad..doIt()” ne odnosi se na uslovni dio “bad” bloka, već na cijeli izraz, tako da je pri formatiranju sada odvojen: var result = errorState ? foo : loše ..doIt();
  • Podrška za Apple M1 (Silicon) procesore je dodata SDK-u, što podrazumijeva i mogućnost pokretanja Dart VM-a, uslužnih programa i SDK komponenti na sistemima sa Apple Silicon procesorom, kao i podršku za kompajliranje izvršnih datoteka za ove čipove.
  • Komanda "dart pub" je dodala podršku za novi servisni fajl ".pubignore", koji vam omogućava da definišete listu datoteka koje će biti preskočene prilikom objavljivanja paketa u repozitorijumu pub.dev. Ova podešavanja ne ometaju listu ignorisanja „.gitignore“ (u nekim situacijama, pub.dev će možda želeti da izbegne prenos datoteka koje su potrebne u Gitu, na primer, internih skripti koje se koriste tokom razvoja).
  • Rad je obavljen na poboljšanju performansi naredbe “dart test”, koja sada ne zahtijeva ponovno kompajliranje testova nakon promjene pubspec ako se broj verzije nije promijenio.
  • Podrška za kompilaciju u ECMAScript 5 modu kompatibilnosti je ukinuta (promjena će rezultirati gubitkom kompatibilnosti sa IE11 pretraživačem).
  • Pojedinačni uslužni programi stagehand, dartfmt i dart2native su proglašeni zastarjelima, zamijenjeni ugrađenim komandama koje se pozivaju preko uslužnog programa dart.
  • Mehanizam VM izvornih ekstenzija je zastario. Za pozivanje izvornog koda iz Dart koda, preporučuje se korištenje novog Dart FFI (Interfejs stranih funkcija).

Istovremeno, predstavljeno je značajno izdanje okvira korisničkog interfejsa Flutter 2.5, koji se smatra alternativom React Native-u i omogućava, na osnovu jedne baze koda, izdavanje aplikacija za iOS, Android, Windows, macOS i Linux platforme, kao i kreiranje aplikacija za pokretanje u pretraživačima. Prilagođena ljuska za operativni sistem Fuchsia microkernel koji je razvio Google izgrađen je na bazi Flutter-a.

Glavni dio Flutter koda implementiran je u Dart jeziku, a runtime engine za izvršavanje aplikacija napisan je u C++. Prilikom razvoja aplikacija, pored Flutterovog izvornog Dart jezika, možete koristiti Dart Foreign Function interfejs za pozivanje C/C++ koda. Visoke performanse izvršenja se postižu kompajliranjem aplikacija u izvorni kod za ciljne platforme. U ovom slučaju, program ne treba ponovo kompajlirati nakon svake promjene - Dart pruža vrući režim ponovnog učitavanja koji vam omogućava da izvršite promjene u pokrenutoj aplikaciji i odmah procijenite rezultat.

Glavne promjene u Flutteru 2.5:

  • Napravljene su značajne optimizacije performansi. Na iOS i macOS platformama implementirana je predkompilacija shadera za Metal graphics API. Poboljšana efikasnost obrade asinhronih događaja. Rešen je problem sa kašnjenjima kada sakupljač smeća povrati memoriju od neiskorištenih slika (na primer, tokom reprodukcije 20-sekundnog animiranog GIF-a, broj operacija sakupljanja smeća je smanjen sa 400 na 4. Kašnjenja pri prosleđivanju poruka između Dart i Objective- C/Swift je smanjen na 50% (iOS) ili Java/Kotlin (Android) Dodata je izvorna podrška za izgradnju sistema baziranih na Apple Silicon čipu.
    Dostupni su jezik Dart 2.14 i Flutter 2.5 okvir
  • Za Android platformu uspostavljena je podrška za pokretanje aplikacija u režimu celog ekrana. Nastavljena je implementacija koncepta dizajna “Material You”, predstavljenog kao opcija materijalnog dizajna sljedeće generacije. Dodano je novo stanje MaterialState.scrolledUnder, implementiran dinamički prikaz traka za pomicanje pri promjeni veličine i predloženo novo sučelje za prikaz banera obavijesti.
  • Mogućnosti dodatka za kameru su značajno proširene, dodajući alate za kontrolu autofokusa, ekspozicije, blica, zuma, smanjenja šuma i rezolucije.
  • Alati za razvojne programere (DevTools) su poboljšani kako bi uključili ažurirani mod inspekcije widgeta, kao i alate za identifikaciju kašnjenja u renderiranju i praćenje kompilacije shadera.
    Dostupni su jezik Dart 2.14 i Flutter 2.5 okvir
  • Poboljšani dodaci za Visual Studio Code i IntelliJ/Android Studio.

izvor: opennet.ru

Dodajte komentar