K dispozici je jazyk Dart 2.14 a rámec Flutter 2.5

Google zveřejnil vydání programovacího jazyka Dart 2.14, který pokračuje ve vývoji radikálně přepracované větve Dart 2, která se od původní verze jazyka Dart liší použitím silného statického psaní (typy lze odvodit automaticky, takže není nutné specifikovat typy, ale dynamické typování se již nepoužívá a zpočátku se počítá typ je přiřazen k proměnné a následně je aplikována přísná kontrola typu).

Vlastnosti jazyka Dart:

  • Známá a snadno naučitelná syntaxe, přirozená pro programátory JavaScript, C a Java.
  • Zajištění rychlého spouštění a vysokého výkonu pro všechny moderní webové prohlížeče a různé typy prostředí, od přenosných zařízení až po výkonné servery.
  • Schopnost definovat třídy a rozhraní, které umožňují zapouzdření a opětovné použití existujících metod a dat.
  • Specifikace typů usnadňuje ladění a identifikaci chyb, činí kód přehlednějším a čitelnějším a zjednodušuje jeho úpravy a analýzu vývojáři třetích stran.
  • Mezi podporované typy patří: různé typy hashů, pole a seznamy, fronty, číselné a řetězcové typy, typy pro určování data a času, regulární výrazy (RegExp). Je možné vytvářet vlastní typy.
  • Pro organizování paralelního provádění se navrhuje používat třídy s atributem isolate, jejichž kód je zcela spouštěn v izolovaném prostoru v oddělené oblasti paměti a interaguje s hlavním procesem odesíláním zpráv.
  • Podpora používání knihoven, které zjednodušují podporu a ladění velkých webových projektů. Implementace funkcí třetích stran mohou být zahrnuty ve formě sdílených knihoven. Aplikace lze rozdělit na části a svěřit vývoj každé části samostatnému týmu programátorů.
  • Sada hotových nástrojů pro podporu vývoje v jazyce Dart, včetně implementace nástrojů pro dynamický vývoj a ladění s opravami kódu za běhu („edit-and-continue“).
  • Pro zjednodušení vývoje v jazyce Dart je dodáván se sadou SDK, správcem balíčků, analyzátorem statického kódu dart_analyzer, sadou knihoven, integrovaným vývojovým prostředím DartPad a zásuvnými moduly s podporou Dart pro IntelliJ IDEA, WebStorm, Emacs, Sublime Text. 2 a Vim.
  • Další balíčky s knihovnami a utilitami jsou distribuovány prostřednictvím hospodského úložiště, které má více než 20 tisíc balíčků.

Hlavní změny ve vydání Dart 2.14:

  • Byl přidán nový operátor trojitého posunu (>>>), který na rozdíl od operátoru „>>“ neprovádí aritmetický, ale logický posun, který funguje bez zohlednění znaménkového bitu (posun se provádí bez dělení na kladná a záporná čísla).
  • Odstraněno omezení argumentů typu, které bránilo použití obecných typů funkcí jako argumentu typu. Nyní můžete například zadat: pozdní Seznam (T)>idFunctions; var zpětné volání = [ (hodnota T) => hodnota]; pozdní S Funkce (T)>(S) f;
  • Povolit specifikaci argumentů pomocí typů v anotacích, jako je @Deprecated. Nyní můžete například zadat: @TypeHelper (42, "Význam")
  • Do standardní knihovny (jádra) ve třídě Object byly přidány statické metody hash, hashAll a hashAllUnordered. Třída DateTime zlepšila práci s místním časem při změně hodin mezi letním a zimním časem, které nejsou dělitelné jednou hodinou (například v Austrálii se používá posun 30 minut). Balíček ffi přidal podporu pro mechanismus alokace paměti arény, který automaticky uvolňuje zdroje. Balíček ffigen přidal možnost generovat definice typedef typů Dart z jazyka C.
  • 250 nejoblíbenějších balíčků z repozitáře pub.dev a 94 % z 1000 nejlepších bylo přepnuto do režimu „null safety“, který zabrání pádům způsobeným pokusy o použití proměnných, jejichž hodnota je nedefinovaná a nastavená na „Null "" Režim znamená, že proměnné nemohou mít hodnoty null, pokud jim není explicitně přiřazena hodnota null. Režim striktně respektuje typy proměnných, což umožňuje kompilátoru aplikovat další optimalizace. Shoda typu se kontroluje při kompilaci, například pokud se pokusíte přiřadit hodnotu „Null“ proměnné s typem, který neznamená nedefinovaný stav, jako je „int“, zobrazí se chyba.
  • Jsou navrženy jednotné sady pravidel pro analyzátor kódu (linter), které poskytují současnou podporu pro kontrolu souladu s pokyny pro styl kódu pro Dart a framework Flutter. Z historických důvodů byla pravidla kódování pro Flutter a Dart odlišná, navíc pro Dart se používaly dvě sady pravidel – pedantská od Googlu a pravidla od vývojářské komunity Dart. Dart 2.14 zavádí novou společnou sadu pravidel pro linter, která se má standardně používat v nových projektech Dart a v sadě Flutter SDK. Sada obsahuje základní pravidla (balíček lints/core.yaml), doporučená další pravidla (lints/recommended.yaml) a doporučení specifická pro Flutter (flutter_lints/flutter.yaml). Uživatelům pedantských pravidel se doporučuje přejít na používání nového stylu kódování na základě doporučení z dokumentace Dart.
  • Ve formátovači byly provedeny optimalizace formátování kaskádových bloků kódu, což může výrazně zlepšit výkon formátování a vyhnout se nejednoznačné interpretaci vlastnictví výrazových prvků. Například volání "..doIt" ve výrazu "var result = errorState ? foo : bad..doIt()“ se netýká podmíněné části bloku „bad“, ale celého výrazu, takže při formátování je nyní oddělen: var result = errorState ? foo : špatný ..doIt();
  • Do SDK byla přidána podpora pro procesory Apple M1 (Silicon), což znamená jak možnost spouštět Dart VM, utility a komponenty SDK na systémech s procesorem Apple Silicon, tak podporu kompilace spustitelných souborů pro tyto čipy.
  • Příkaz "dart pub" přidal podporu pro nový servisní soubor ".pubignore", který umožňuje definovat seznam souborů, které budou přeskočeny při publikování balíčku do repozitáře pub.dev. Tato nastavení nezasahují do seznamu ignorovaných „.gitignore“ (v některých situacích se může pub.dev vyhnout přenosu souborů, které jsou v Gitu potřeba, například interní skripty používané během vývoje).
  • Byla provedena práce na zlepšení výkonu příkazu „dart test“, který nyní nevyžaduje rekompilaci testů po změně pubspec, pokud se nezměnilo číslo verze.
  • Podpora kompilace v režimu kompatibility ECMAScript 5 byla ukončena (změna bude mít za následek ztrátu kompatibility s prohlížečem IE11).
  • Jednotlivé obslužné programy stagehand, dartfmt a dart2native byly prohlášeny za zastaralé a byly nahrazeny vestavěnými příkazy volanými prostřednictvím obslužného programu dart.
  • Mechanismus VM Native Extensions byl zastaralý. Pro volání nativního kódu z kódu Dart se doporučuje použít nový Dart FFI (Foreign Function Interface).

Zároveň bylo představeno významné vydání frameworku uživatelského rozhraní Flutter 2.5, který je považován za alternativu k React Native a umožňuje na základě jedné kódové báze vydávat aplikace pro iOS, Android, Windows, macOS a Linux. platformy a také vytvářet aplikace pro běh v prohlížečích. Vlastní shell pro operační systém mikrokernelu Fuchsia vyvinutý společností Google je postaven na základě Flutter.

Hlavní část kódu Flutter je implementována v jazyce Dart a runtime engine pro spouštění aplikací je napsán v C++. Při vývoji aplikací můžete kromě nativního jazyka Dart společnosti Flutter použít rozhraní Dart Foreign Function pro volání kódu C/C++. Vysokého výkonu při provádění je dosaženo kompilací aplikací do nativního kódu pro cílové platformy. V tomto případě není nutné program po každé změně překompilovat – Dart poskytuje režim horkého načítání, který umožňuje provádět změny v běžící aplikaci a okamžitě vyhodnotit výsledek.

Hlavní změny ve Flutter 2.5:

  • Provedli významné optimalizace výkonu. Na platformách iOS a macOS byla implementována předkompilace shaderů pro rozhraní Metal graphics API. Zlepšená efektivita zpracování asynchronních událostí. Vyřešen problém se zpožděním, když garbage collector získává zpět paměť z nepoužitých obrázků (například během přehrávání 20sekundového animovaného GIFu se počet operací garbage collection snížil ze 400 na 4. Zpoždění při předávání zpráv mezi Dart a Objective- C/Swift byly sníženy na 50 % (iOS) nebo Java/Kotlin (Android) Přidána nativní podpora sestavení pro systémy založené na čipu Apple Silicon.
    K dispozici je jazyk Dart 2.14 a rámec Flutter 2.5
  • Pro platformu Android byla zavedena podpora spouštění aplikací v režimu celé obrazovky. Pokračovala implementace designového konceptu „Material You“, představeného jako možnost materiálového designu nové generace. Přidán nový stav MaterialState.scrolledUnder, implementováno dynamické zobrazení posuvníků při změně velikosti a navrženo nové rozhraní pro zobrazování oznamovacích bannerů.
  • Možnosti zásuvného modulu fotoaparátu byly výrazně rozšířeny, přibyly nástroje pro ovládání automatického ostření, expozice, blesku, zoomu, redukce šumu a rozlišení.
  • Vývojářské nástroje (DevTools) byly vylepšeny tak, aby zahrnovaly aktualizovaný režim kontroly widgetů a také nástroje pro identifikaci zpoždění vykreslování a sledování kompilace shaderů.
    K dispozici je jazyk Dart 2.14 a rámec Flutter 2.5
  • Vylepšené pluginy pro Visual Studio Code a IntelliJ/Android Studio.

Zdroj: opennet.ru

Přidat komentář