Společnost Google představila framework pro vytváření uživatelského rozhraní Flutter 2, který znamenal transformaci projektu z frameworku pro vývoj mobilních aplikací na univerzální framework pro vytváření jakýchkoli typů programů, včetně programů pro stolní systémy a webové aplikace.
Flutter je považován za alternativu k React Native a umožňuje na základě jedné kódové základny vydávat aplikace pro různé platformy, včetně iOS, Android, Windows, macOS a Linux, stejně jako aplikace pro spuštění v prohlížečích. Dříve napsané mobilní aplikace na Flutter 1 mohou být po přechodu na Flutter 2 bez přepisování kódu přizpůsobeny pro práci na desktopu a Webu.
Hlavní část kódu Flutter je napsána v jazyce Dart, zatímco runtime engine pro provádění aplikací je napsán v C++. Při vývoji aplikací lze kromě nativního jazyka Dart použít rozhraní Dart Foreign Function pro volání kódu v C/C++. Vysokého výkonu provádění je dosaženo díky kompilaci aplikací do strojového kódu pro cílové platformy. Program není třeba překompilovat po každé změně – Dart poskytuje režim horkého restartu, který umožňuje provádět změny v běžící aplikaci a okamžitě hodnotit výsledek.
Ve Flutter 2 je uvedena plná podpora pro vytváření aplikací pro Web, vhodná pro pracovní implementace. Zmiňují se tři hlavní scénáře použití Flutter pro Web: vývoj samostatných webových aplikací (PWA, Progressive Web Apps), vytváření jednopageových webových aplikací (SPA, Single Page Apps) a převod mobilních aplikací na webové aplikace. Mezi charakteristiky vývojových nástrojů pro Web patří využití mechanismů urychlení vykreslování 2D a 3D grafiky, flexibilní rozložení prvků na obrazovce a kompilovatelného do WebAssembly vykreslovacího enginu CanvasKit.
Podpora desktopových aplikací je ve fázi beta testování a bude stabilizována tento rok v některé z následujících verzí. O podpoře vývoje s použitím Flutter oznámily společnosti Canonical, Microsoft a Toyota. Společnost Canonical zvolila Flutter jako hlavní rámec pro své aplikace a také ho používá při vývoji nového instalátoru pro Ubuntu. Společnost Microsoft přizpůsobila Flutter pro skládací zařízení s několika obrazovkami, jako je Surface Duo. Společnost Toyota plánuje využít Flutter pro automobilové informačně-zábavní systémy. Na základě Flutter byla také postavena uživatelská nadstavba vyvíjeného v Google mikrojádra Fuchsia.

Současně byl uvolněn jazyk programování Dart 2.12, ve kterém pokračuje vývoj zásadně přepracované větve Dart 2. Dart 2 se liší od původní verze jazyka Dart použitím silné statické typizace (typy mohou být automaticky odvozeny, proto není povinné je uvádět, ale dynamická typizace už není používána a původně vyčíslený typ je přidělen proměnné a v dalším postupu probíhá přísná kontrola typu).
Verze se vyznačuje stabilizací režimu bezpečného používání hodnoty „Null“ (null safety), který umožní vyhnout se haváriím, způsobeným pokusy o použití proměnných, jejichž hodnota není určena a je nastavena na „Null“. Tento režim znamená, že proměnné nemohou mít neurčité hodnoty, pokud jim není explicitně přiřazena hodnota null. Režim přísně zohledňuje typy proměnných, což umožňuje kompilátoru aplikovat další optimalizace. Shoda typů je kontrolována ve fázi kompilace, například v případě pokusu o přiřazení hodnoty „Null“ proměnné s typem, který neumožňuje neurčitý stav, jako je „int“, dojde k vyvolání chyby.
Dalším důležitým vylepšením Dart 2.12 byla stabilní implementace knihovny FFI, která umožňuje vytvářet vysoce výkonný kód, který může oslovit API v jazyce C. Byla provedena optimalizace výkonu a velikosti. Byly přidány nástroje pro vývojáře a systém profilování kódu, napsaného pomocí Flutter, stejně jako nové pluginy pro vývoj aplikací v Dart a Flutter pro Android Studio/IntelliJ a VS Code.

Zdroj: opennet.ru
