Google esitles kasutajaliidese raamistikku Flutter 2, mis tähistab projekti üleminekut mobiilirakenduste arendamise raamistikust universaalseks raamistikuks, millega saab luua mistahes tüüpi programme, sealhulgas töölauarakendusi ja veebirakendusi.
Flutterit peetakse React Native'i alternatiiviks ning selle abil on võimalik ühe koodibaasi põhjal luua rakendusi erinevatele platvormidele, sealhulgas iOS, Android, Windows, macOS ja Linux, samuti brauserites käivitatavaid rakendusi. Varasemalt Flutter 1-l kirjutatud mobiilirakendused saavad pärast üleminekut Flutter 2-le töötada töölaudade ja veebis ilma koodi ümberkirjutamiseta.
Flutteri põhikood on kirjutatud Dart-keeles, samas kui rakenduste käitusmootor on kirjutatud C++-s. Rakenduste arendamisel on Flutteri natiivset Dart-keelt lisaks võimalik kasutada Dart Foreign Functioni liidest C/C++ koodi kutsumiseks. Suurt jõudlust saavutatakse rakenduste kompileerimise kaudu sihtruumi masina koodiks. Samuti ei ole programmi pärast iga muudatust vaja uuesti kompileerida — Dart pakub kuuma taaskäivitamise režiimi, mis võimaldab teha muudatusi töötavas rakenduses ja kohe tulemusi hinnata.
Flutter 2 tutvustab täiendavat tuge rakenduste arendamiseks veebis, sobiv suuremate juurutuste jaoks. Räägitakse kolmest peamisest rakendustegevuse stsenaariumist Flutteri veebis: eraldiseisvate veebirakenduste (PWA, Progreessive Web Apps) arendamine, ühe lehe veebirakenduste (SPA, Single Page Apps) loomine ja mobiilirakenduste konverteerimine veebirakendusteks. Veebiarenduse tööriistade omadustest tõstetakse esile 2D ja 3D-graafika joonistamise kiirusmehhanismide kaasamist, ekraanil elementide paigutamise paindlikkust ja WebAssembly-sse kompileeritud joonistamise mootori CanvasKit.
Töölauarakenduste tugi on beetaversioonis ja stabiliseeritakse käesoleva aasta jooksul järgmistes väljaannetes. Flutteri arendamise toetamisest on teatanud ettevõtted Canonical, Microsoft ja Toyota. Canonical on valinud Flutteri oma rakenduste peamise raamistikuna, sealhulgas kasutab seda uue Ubuntu paigaldaja arendamisel. Microsoft on kohandanud Flutterit kokkuklapitavate mitme ekraaniga seadmete, näiteks Surface Duo jaoks. Toyota kavatseb kasutada Flutterit autode multimeedia süsteemides. Flutteril põhineb ka Google'i arendatav mikrokerne operatsioonisüsteem Fuchsia, millel on kohandatud kasutajaliides.

Samaeges on välja antud programmeerimiskeele Dart 2.12 versioon, kus jätkub oluliselt ümber töötatud Dart 2 haru arendamine. Dart 2 erineb algsest Dart keele versioonist tugeva staatilise tüübi süsteemi kasutamise kaudu (tüübid võivad automaatselt välja tuua, seega pole tüüpide määramine kohustuslik, kuid dünaamilist tüübi määramist enam ei kasutata ja esialgne tüüp kinnitatakse muutujale ning sellele järgneb rangem tüübikontroll).
Väljalaske oluline omadus on 'Null' (null safety) turvarežiimi stabiliseerimine, mis aitab vältida süsteemi kokkuvarisemisi, kui proovitakse kasutada muutujaid, mille väärtus pole määratud ja on seadistatud 'Null' -ks. See režiim tagab, et muutujatel ei saa olla määramata väärtusi, kui neile pole selgesõnaliselt antud nulli väärtus. Täpset tüübi järjekorda arvestatakse rangelt, mis võimaldab kompilaatoril rakendada täiendavaid optimeerimisi. Tüüpide sobivus kontrollitakse kompileerimise ajal, näiteks katse korral määrata nulli väärtus muutuja tüübile, mis ei toeta määramata olekut, näiteks 'int', tekitab vea.
Teine oluline täiustus Dart 2.12-s oli stabiilne FFI teekide teostus, mis võimaldab luua kõrge jõudlusega koodi, mis võimaldab kõnelda C-keele API-dega. Tehtud on jõudluse ja suuruse optimeerimisi. Lisatud on tööriistad arendajatele ja koodiprofiilimise süsteem, mis on kirjutatud Flutteri kasutades, lisaks uued pluginad Dart ja Flutter rakenduste arendamiseks Android Studio/IntelliJ ja VS Code jaoks.

Allikas: opennet.ru
