Dostupni su Dart 2.14 jezik i okvir Flutter 2.5

Google je objavio izdanje programskog jezika Dart 2.14, koji nastavlja razvoj radikalno redizajniranog ogranka Dart 2, koji se razlikuje od izvorne verzije jezika Dart u upotrebi snažnog statičkog tipkanja (tipovi se mogu zaključiti automatski, tako da se specificira tipovi nisu potrebni, ali dinamičko tipiziranje se više ne koristi i početni izračun tip se dodjeljuje varijabli i naknadno se primjenjuje stroga provjera tipa).

Značajke jezika Dart:

  • Poznata sintaksa laka za naučiti, prirodna za JavaScript, C i Java programere.
  • Osiguravanje brzog pokretanja i visokih performansi za sve moderne web preglednike i različite vrste okruženja, od prijenosnih uređaja do snažnih poslužitelja.
  • Sposobnost definiranja klasa i sučelja koja omogućuju enkapsulaciju i ponovnu upotrebu postojećih metoda i podataka.
  • Određivanje tipova olakšava otklanjanje pogrešaka i prepoznavanje pogrešaka, čini kod jasnijim i čitljivijim te pojednostavljuje njegovu izmjenu i analizu od strane programera trećih strana.
  • Podržani tipovi uključuju: razne vrste hashova, polja i liste, redove, numeričke i string tipove, tipove za određivanje datuma i vremena, regularne izraze (RegExp). Moguće je kreirati vlastite tipove.
  • Za organiziranje paralelnog izvođenja predlaže se korištenje klasa s atributom isolate, čiji se kod u potpunosti izvršava u izoliranom prostoru u zasebnom memorijskom području, u interakciji s glavnim procesom slanjem poruka.
  • Podrška za korištenje knjižnica koje pojednostavljuju podršku i otklanjanje pogrešaka velikih web projekata. Implementacije funkcija trećih strana mogu se uključiti u obliku zajedničkih knjižnica. Aplikacije je moguće podijeliti u dijelove i povjeriti razvoj svakog dijela posebnom timu programera.
  • Skup gotovih alata za podršku razvoju u Dart jeziku, uključujući implementaciju dinamičkog razvoja i alata za uklanjanje pogrešaka s korekcijom koda u hodu ("uredi i nastavi").
  • Kako bi se pojednostavio razvoj na Dart jeziku, dolazi sa SDK-om, pubom za upravljanje paketima, statičkim analizatorom koda dart_analyzer, skupom biblioteka, integriranim razvojnim okruženjem DartPad i dodacima omogućenim za Dart za IntelliJ IDEA, WebStorm, Emacs, Sublime Text 2 i Vim.
  • Dodatni paketi s bibliotekama i uslužnim programima distribuiraju se putem pub repozitorija koji ima više od 20 tisuća paketa.

Glavne promjene u izdanju Darta 2.14:

  • Dodan je novi operator trostrukog pomaka (>>>) koji za razliku od operatora “>>” ne izvodi aritmetički, već logički pomak koji radi bez uzimanja u obzir bita predznaka (pomak se izvodi bez dijeljenja na pozitivni i negativni brojevi).
  • Uklonjeno je ograničenje na argumente tipa koje je sprječavalo korištenje generičkih tipova funkcija kao argumenta tipa. Na primjer, sada možete odrediti: kasni popis (T)>idFunctions; var povratni poziv = [ (T vrijednost) => vrijednost]; kasna S funkcija (T)>(S) f;
  • Omogućuje navođenje argumenata s tipovima u komentarima kao što je @Deprecated. Na primjer, sada možete navesti: @TypeHelper (42, "Značenje")
  • Statične metode hash, hashAll i hashAllUnordered dodane su u standardnu ​​biblioteku (core) u klasi Object. Klasa DateTime poboljšala je rukovanje lokalnim vremenom prilikom pretvaranja satova između ljetnog i zimskog vremena koji nisu djeljivi s jednim satom (na primjer, u Australiji se koristi pomak od 30 minuta). Paket ffi dodao je 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 repozitorija pub.dev i 94% od 1000 najboljih prebačeno je na korištenje "nultog sigurnosnog" načina rada, čime će se izbjeći rušenja uzrokovana pokušajima korištenja varijabli čija je vrijednost nedefinirana i postavljena na "Null ” " Način implicira da varijable ne mogu imati null vrijednosti osim ako im nije eksplicitno dodijeljena vrijednost null. Način rada strogo poštuje tipove varijabli, što omogućuje kompajleru primjenu dodatnih optimizacija. Usklađenost tipa provjerava se tijekom kompajliranja, na primjer, ako pokušate dodijeliti vrijednost "Null" varijabli s tipom koji ne podrazumijeva nedefinirano stanje, kao što je "int", prikazat će se pogreška.
  • Predloženi su objedinjeni skupovi pravila za analizator koda (linter), koji pružaju simultanu podršku za provjeru usklađenosti sa smjernicama stila koda za Dart i Flutter framework. Iz povijesnih razloga, pravila kodiranja za Flutter i Dart bila su različita, osim toga, za Dart su bila u upotrebi dva skupa pravila - pedantna pravila iz Googlea 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 prema zadanim postavkama u novim Dart projektima i u Flutter SDK-u. 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 savjetuje se da prijeđu na korištenje novog stila kodiranja na temelju preporuka iz Dart dokumentacije.
  • U programu za formatiranje napravljene su optimizacije oblikovanja blokova kaskadnog koda, što može značajno poboljšati performanse oblikovanja 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 uvjetni dio “lošeg” bloka, već na cijeli izraz, tako da se kod formatiranja sada odvaja: var result = errorState ? foo : loše ..doIt();
  • Podrška za Apple M1 (Silicon) procesore dodana je SDK-u, što podrazumijeva i mogućnost pokretanja Dart VM-a, uslužnih programa i SDK komponenti na sustavima s Apple Silicon procesorom i podršku za kompajliranje izvršnih datoteka za te čipove.
  • Naredba "dart pub" dodala je podršku za novu servisnu datoteku ".pubignore", koja vam omogućuje definiranje popisa datoteka koje će biti preskočene prilikom objavljivanja paketa u repozitoriju pub.dev. Ove postavke ne ometaju popis zanemarivanja “.gitignore” (u nekim situacijama pub.dev možda želi izbjeći prijenos datoteka koje su potrebne u Gitu, na primjer, internih skripti korištenih tijekom razvoja).
  • Radilo se na poboljšanju performansi naredbe "dart test", koja sada ne zahtijeva ponovno kompajliranje testova nakon promjene pubspec-a ako se broj verzije nije promijenio.
  • Podrška za kompilaciju u načinu kompatibilnosti s ECMAScript 5 je ukinuta (promjena će rezultirati gubitkom kompatibilnosti s preglednikom IE11).
  • Pojedinačni uslužni programi stagehand, dartfmt i dart2native proglašeni su zastarjelima, zamijenjeni ugrađenim naredbama koje se pozivaju putem uslužnog programa dart.
  • Mehanizam VM izvornih proširenja je zastario. Za pozivanje izvornog koda iz Dart koda, preporučuje se korištenje novog Dart FFI (Foreign Function Interface).

Istovremeno je predstavljeno značajno izdanje okvira korisničkog sučelja Flutter 2.5, koje se smatra alternativom React Nativeu i omogućuje, na temelju jedne baze koda, izdavanje aplikacija za iOS, Android, Windows, macOS i Linux platforme, kao i stvaranje aplikacija za rad u preglednicima. Prilagođena ljuska za Fuchsia microkernel operativni sustav koji je razvio Google izgrađena je na temelju Fluttera.

Glavni dio Flutter koda implementiran je u Dart jeziku, a runtime engine za izvršavanje aplikacija napisan je u C++. Prilikom razvoja aplikacija, uz Flutterov izvorni Dart jezik, možete koristiti sučelje Dart Foreign Function za pozivanje C/C++ koda. Visoke izvedbene performanse postižu se kompajliranjem aplikacija u izvorni kod za ciljane platforme. U ovom slučaju, program ne treba ponovno kompajlirati nakon svake promjene - Dart nudi način ponovnog učitavanja u vrućem stanju koji vam omogućuje da napravite promjene u pokrenutoj aplikaciji i odmah procijenite rezultat.

Glavne promjene u Flutteru 2.5:

  • Napravio značajne optimizacije performansi. Na iOS i macOS platformama implementirana je predkompilacija shadera za Metal graphics API. Poboljšana učinkovitost obrade asinkronih događaja. Riješen je problem s kašnjenjima kada skupljač smeća vraća memoriju od neiskorištenih slika (na primjer, tijekom reprodukcije animiranog GIF-a od 20 sekundi, broj operacija skupljanja smeća smanjen je s 400 na 4. Kašnjenja prilikom prosljeđivanja poruka između Darta i Objective- C/Swift smanjeni su na 50% (iOS) ili Java/Kotlin (Android) Dodana izvorna podrška za izradu za sustave temeljene na Apple Silicon čipu.
    Dostupni su Dart 2.14 jezik i okvir Flutter 2.5
  • Za Android platformu uspostavljena je podrška za pokretanje aplikacija na cijelom zaslonu. 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 klizača pri promjeni veličine i predloženo novo sučelje za prikaz bannera obavijesti.
  • Mogućnosti dodatka za kameru značajno su proširene, dodajući alate za kontrolu autofokusa, ekspozicije, bljeskalice, zooma, smanjenja šuma i rezolucije.
  • Alati za razvojne programere (DevTools) poboljšani su kako bi uključili ažurirani način pregleda widgeta, kao i alate za prepoznavanje kašnjenja renderiranja i praćenje kompilacije shadera.
    Dostupni su Dart 2.14 jezik i okvir Flutter 2.5
  • Poboljšani dodaci za Visual Studio Code i IntelliJ/Android Studio.

Izvor: opennet.ru

Dodajte komentar