K dispozícii je jazyk Dart 2.14 a rámec Flutter 2.5

Google zverejnil vydanie programovacieho jazyka Dart 2.14, ktorý pokračuje vo vývoji radikálne prepracovanej vetvy Dart 2, ktorá sa od pôvodnej verzie jazyka Dart odlišuje použitím silného statického písania (typy sa dajú odvodiť automaticky, takže nie je potrebné špecifikovať typy, ale dynamické typovanie sa už nepoužíva a na začiatku sa vypočíta typ priradí premennej a následne sa aplikuje prísna kontrola typu).

Vlastnosti jazyka Dart:

  • Známa a ľahko osvojiteľná syntax, prirodzená pre programátorov JavaScript, C a Java.
  • Zabezpečuje rýchle spustenie a vysoký výkon pre všetky moderné webové prehliadače a rôzne typy prostredí, od prenosných zariadení až po výkonné servery.
  • Schopnosť definovať triedy a rozhrania, ktoré umožňujú zapuzdrenie a opätovné použitie existujúcich metód a údajov.
  • Určenie typov uľahčuje ladenie a identifikáciu chýb, robí kód prehľadnejším a čitateľnejším a zjednodušuje jeho úpravu a analýzu vývojármi tretích strán.
  • Medzi podporované typy patria: rôzne typy hashov, polia a zoznamy, fronty, číselné a reťazcové typy, typy na určenie dátumu a času, regulárne výrazy (RegExp). Je možné vytvárať vlastné typy.
  • Na organizáciu paralelného vykonávania sa navrhuje použiť triedy s atribútom isolate, ktorých kód sa vykonáva úplne v izolovanom priestore v oddelenej oblasti pamäte, pričom s hlavným procesom interaguje odosielaním správ.
  • Podpora používania knižníc, ktoré zjednodušujú podporu a ladenie veľkých webových projektov. Implementácie funkcií tretích strán môžu byť zahrnuté vo forme zdieľaných knižníc. Aplikácie je možné rozdeliť na časti a zveriť vývoj každej časti samostatnému tímu programátorov.
  • Sada hotových nástrojov na podporu vývoja v jazyku Dart, vrátane implementácie nástrojov dynamického vývoja a ladenia s opravou kódu za behu („edit-and-continue“).
  • Na zjednodušenie vývoja v jazyku Dart sa dodáva so súpravou SDK, správcom balíkov, analyzátorom statického kódu dart_analyzer, sadou knižníc, integrovaným vývojovým prostredím DartPad a zásuvnými modulmi s podporou Dart pre IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 a Vim.
  • Ďalšie balíčky s knižnicami a utilitami sú distribuované cez pub repozitár, ktorý má viac ako 20 tisíc balíčkov.

Hlavné zmeny vo vydaní Dart 2.14:

  • Pribudol nový operátor trojitého posunu (>>>), ktorý na rozdiel od operátora „>>“ nevykonáva aritmetický, ale logický posun, ktorý funguje bez zohľadnenia znamienkového bitu (posun sa vykonáva bez delenia na kladné a záporné čísla).
  • Odstránilo sa obmedzenie na argumenty typu, ktoré bránilo použitiu generických typov funkcií ako argumentov typu. Napríklad teraz môžete zadať: neskorý zoznam (T)>idFunctions; var spätné volanie = [ (hodnota T) => hodnota]; neskorá funkcia S (T)>(S) f;
  • Povoliť špecifikovanie argumentov s typmi v anotáciách, ako napríklad @Zastarané. Teraz môžete napríklad zadať: @TypeHelper (42, "Význam")
  • Do štandardnej knižnice (jadra) v triede Object boli pridané statické metódy hash, hashAll a hashAllUnordered. Trieda DateTime zlepšila prácu s miestnym časom pri prevode hodín medzi letným a zimným časom, ktoré nie sú deliteľné jednou hodinou (napríklad v Austrálii sa používa posun 30 minút). Balík ffi pridal podporu pre mechanizmus prideľovania pamäte arény, ktorý automaticky uvoľňuje zdroje. Balík ffigen pridal možnosť generovať definície typedef typov Dart z jazyka C.
  • 250 najpopulárnejších balíkov z repozitára pub.dev a 94 % z 1000 najlepších bolo prepnutých do režimu „null safety“, ktorý zabráni zlyhaniam spôsobeným pokusmi o použitie premenných, ktorých hodnota je nedefinovaná a nastavená na „Null“ "" Režim znamená, že premenné nemôžu mať hodnoty null, pokiaľ im nie je explicitne priradená hodnota null. Režim prísne rešpektuje typy premenných, čo umožňuje kompilátoru použiť ďalšie optimalizácie. Súlad typu sa kontroluje v čase kompilácie, napríklad ak sa pokúsite priradiť hodnotu „Null“ premennej s typom, ktorý neznamená nedefinovaný stav, ako napríklad „int“, zobrazí sa chyba.
  • Navrhujú sa jednotné sady pravidiel pre analyzátor kódu (linter), ktoré poskytujú simultánnu podporu pri kontrole súladu s usmerneniami pre štýl kódu pre rámec Dart a Flutter. Z historických dôvodov boli pravidlá kódovania pre Flutter a Dart odlišné, navyše pre Dart sa používali dve sady pravidiel – pedantské od Google a pravidlá od vývojárskej komunity Dart. Dart 2.14 zavádza nový spoločný súbor pravidiel pre linter, ktorý sa má štandardne používať v nových projektoch Dart a v súprave Flutter SDK. Sada obsahuje základné pravidlá (balík lints/core.yaml), odporúčané dodatočné pravidlá (lints/recommended.yaml) a odporúčania špecifické pre flutter (flutter_lints/flutter.yaml). Používateľom pedantských pravidiel sa odporúča prejsť na používanie nového štýlu kódovania na základe odporúčaní z dokumentácie Dart.
  • Vo formátovači boli vykonané optimalizácie formátovania kaskádových blokov kódu, čo môže výrazne zlepšiť výkon formátovania a vyhnúť sa nejednoznačnej interpretácii vlastníctva výrazových prvkov. Napríklad volanie "..doIt" vo výraze "var result = errorState ? foo : bad..doIt()“ sa netýka podmienenej časti bloku „bad“, ale celého výrazu, takže pri formátovaní je teraz oddelený: var result = errorState ? foo : zle ..urob to();
  • Do SDK bola pridaná podpora pre procesory Apple M1 (Silicon), čo znamená možnosť spúšťať Dart VM, nástroje a súčasti SDK na systémoch s procesorom Apple Silicon a podporu kompilácie spustiteľných súborov pre tieto čipy.
  • Príkaz "dart pub" pridal podporu pre nový servisný súbor ".pubignore", ktorý vám umožňuje definovať zoznam súborov, ktoré budú preskočené pri publikovaní balíka do repozitára pub.dev. Tieto nastavenia nezasahujú do zoznamu ignorovaných „.gitignore“ (v niektorých situáciách sa môže pub.dev vyhnúť prenosu súborov, ktoré sú potrebné v systéme Git, napríklad interné skripty používané počas vývoja).
  • Vykonali sa práce na zlepšení výkonu príkazu „dart test“, ktorý teraz nevyžaduje opätovné skompilovanie testov po zmene pubspec, ak sa nezmenilo číslo verzie.
  • Podpora kompilácie v režime kompatibility ECMAScript 5 bola ukončená (zmena bude mať za následok stratu kompatibility s prehliadačom IE11).
  • Jednotlivé pomocné programy stagehand, dartfmt a dart2native boli vyhlásené za zastarané a nahradené vstavanými príkazmi volanými cez pomôcku dart.
  • Mechanizmus VM Native Extensions bol zastaraný. Na volanie natívneho kódu z kódu Dart sa odporúča použiť nový Dart FFI (Foreign Function Interface).

Zároveň bolo predstavené významné vydanie frameworku používateľského rozhrania Flutter 2.5, ktorý je považovaný za alternatívu k React Native a umožňuje na základe jednej kódovej základne vydávať aplikácie pre iOS, Android, Windows, macOS a Linux. platformy, ako aj vytváranie aplikácií na spustenie v prehliadačoch. Vlastný shell pre operačný systém mikrojadra Fuchsia vyvinutý spoločnosťou Google je postavený na základe Flutter.

Hlavná časť kódu Flutter je implementovaná v jazyku Dart a runtime engine na spúšťanie aplikácií je napísaný v C++. Pri vývoji aplikácií môžete okrem Flutterovho natívneho jazyka Dart použiť rozhranie Dart Foreign Function na volanie kódu C/C++. Vysoký výkon pri vykonávaní sa dosahuje kompiláciou aplikácií do natívneho kódu pre cieľové platformy. V tomto prípade nie je potrebné program po každej zmene prekompilovať – Dart poskytuje režim horúceho opätovného načítania, ktorý umožňuje vykonávať zmeny v spustenej aplikácii a okamžite vyhodnotiť výsledok.

Hlavné zmeny vo Flutter 2.5:

  • Vykonali významné optimalizácie výkonu. Na platformách iOS a macOS bola implementovaná predkompilácia shaderov pre rozhranie Metal graphics API. Vylepšená efektivita spracovania asynchrónnych udalostí. Vyriešený problém s oneskoreniami, keď zberač odpadu získava pamäť z nepoužitých obrázkov (napríklad počas prehrávania 20-sekundového animovaného GIF sa počet operácií zberu odpadu znížil zo 400 na 4. Oneskorenia pri odovzdávaní správ medzi Dart a Objective- C/Swift boli znížené na 50 % (iOS) alebo Java/Kotlin (Android) Pridaná podpora natívnej zostavy pre systémy založené na čipe Apple Silicon.
    K dispozícii je jazyk Dart 2.14 a rámec Flutter 2.5
  • Pre platformu Android bola zavedená podpora spúšťania aplikácií v režime celej obrazovky. Pokračovala implementácia dizajnového konceptu „Material You“, predstaveného ako možnosť Material Design novej generácie. Pridaný nový stav MaterialState.scrolledUnder, implementované dynamické zobrazenie posuvníkov pri zmene veľkosti a navrhnuté nové rozhranie pre zobrazovanie oznamovacích bannerov.
  • Možnosti zásuvného modulu fotoaparátu boli výrazne rozšírené, pribudli nástroje na ovládanie automatického zaostrovania, expozície, blesku, zoomu, redukcie šumu a rozlíšenia.
  • Vývojárske nástroje (DevTools) boli vylepšené tak, aby zahŕňali aktualizovaný režim kontroly miniaplikácií, ako aj nástroje na identifikáciu oneskorení vykresľovania a sledovanie kompilácie shaderov.
    K dispozícii je jazyk Dart 2.14 a rámec Flutter 2.5
  • Vylepšené doplnky pre Visual Studio Code a IntelliJ/Android Studio.

Zdroj: opennet.ru

Pridať komentár