Google heeft het Flutter 2 gebruikersinterface-framework geïntroduceerd, dat de transformatie van het project markeert van een framework voor mobiele applicaties naar een universeel framework voor het creëren van verschillende soorten programma's, inclusief desktopsoftware en webapplicaties.
Flutter wordt beschouwd als een alternatief voor React Native en stelt ontwikkelaars in staat om applicaties voor meerdere platforms uit te brengen op basis van één codebasis, waaronder iOS, Android, Windows, macOS en Linux, evenals toepassingen die in browsers draaien. Eerder op Flutter 1 geschreven mobiele applicaties kunnen na de overstap naar Flutter 2 zonder herschrijven van de code worden aangepast voor desktop- en webgebruik.
De meeste Flutter-code is geschreven in Dart, terwijl de runtime-engine voor het uitvoeren van applicaties is geschreven in C++. Bij het ontwikkelen van applicaties kan naast de standaard Dart-taal ook de Dart Foreign Function Interface worden gebruikt om C/C++-code aan te roepen. Hoge prestaties worden bereikt door applicaties te compileren naar machinecode voor de doelplatforms. Het programma hoeft niet opnieuw te worden gecompileerd na elke wijziging — Dart biedt een hot reload-modus waarmee aanpassingen in een actieve applicatie kunnen worden aangebracht en direct het resultaat kan worden geëvalueerd.
In Flutter 2 is volledige ondersteuning voor het maken van webapplicaties aangekondigd, geschikt voor zakelijke implementaties. Er worden drie hoofdsituaties genoemd voor het gebruik van Flutter voor het web: het ontwikkelen van afzonderlijke webapplicaties (PWA, Progressive Web Apps), het creëren van een pagina webapplicaties (SPA, Single page apps) en het omzetten van mobiele applicaties naar webapplicaties. De ontwikkeltools voor het web maken gebruik van technologieën voor het versnellen van de rendering van 2D- en 3D-grafiek, flexibele schikking van elementen op het scherm, en een in WebAssembly gecompileerde rendering-engine genaamd CanvasKit.
De ondersteuning voor desktopapplicaties bevindt zich in de bètafase en zal dit jaar worden gestabiliseerd in een van de volgende versies. Canonical, Microsoft en Toyota hebben aangekondigd dat ze Flutter zullen ondersteunen in hun ontwikkelingsprojecten. Canonical heeft Flutter gekozen als het primaire framework voor zijn applicaties en gebruikt het ook bij de ontwikkeling van een nieuwe installer voor Ubuntu. Microsoft heeft Flutter aangepast voor opvouwbare apparaten met meerdere schermen, zoals de Surface Duo. Toyota is van plan Flutter te gebruiken voor infotainmentsystemen in voertuigen. Ook de gebruikersinterface van het in ontwikkeling zijnde microkernel-besturingssysteem Fuchsia van Google is gebaseerd op Flutter.

Tegelijkertijd werd de release van de programmeertaal Dart 2.12 uitgebracht, waarin de ontwikkeling van de ingrijpend herwerkte tak van Dart 2 werd voortgezet. Dart 2 verschilt van de oorspronkelijke versie van de taal Dart door het gebruik van sterke statische typisering (typen kunnen automatisch worden afgeleid, waardoor het opgeven van typen niet verplicht is, maar dynamische typisering niet langer wordt gebruikt en het oorspronkelijke type aan de variabele wordt toegewezen, en er komt een strenge typecontrole).
De release is opmerkelijk vanwege de stabilisatie van de modus voor veilig gebruik van de waarde 'Null' (null safety), die voorkomt dat crashes optreden als gevolg van pogingen om variabelen te gebruiken waarvan de waarde niet gedefinieerd is en op 'Null' is ingesteld. De modus houdt in dat variabelen geen onbepaalde waarden kunnen hebben, tenzij ze expliciet de waarde null krijgen toegewezen. In de modus worden de typen van variabelen streng in aanmerking genomen, wat de compiler in staat stelt aanvullende optimalisaties toe te passen. Typeovereenkomsten worden gecontroleerd op het moment van compileren, bijvoorbeeld als er geprobeerd wordt om de waarde 'Null' toe te wijzen aan een variabele met een type, dat geen onbepaalde toestand toelaat, zoals 'int', zal er een foutmelding worden weergegeven.
Een andere belangrijke verbetering in Dart 2.12 was de stabiele implementatie van de FFI-bibliotheek, waarmee hoogpresterende code kan worden geschreven, die toegang heeft tot API's in de programmeertaal C. Prestatie- en grootteoptimalisaties zijn aangebracht. Er zijn hulpmiddelen voor ontwikkelaars en een systeem voor het profilereren van code toegevoegd, geschreven met Flutter, evenals nieuwe plug-ins voor het ontwikkelen van applicaties op Dart en Flutter voor Android Studio/IntelliJ en VS Code.

Bron: opennet.ru
