Google frigiver Flutter 1.17 og Dart 2.8 SDK'er til appudvikling

Google har udgivet opdateringer til Flutter- og Dart-SDK'er, der medbringer en lang række forbedringer til ensartet udvikling på tværs af platforme. Læs videre for mere!

Flutter er en programmeringsramme på tværs af platforme, der sigter mod at løse problemerne ved at udvikle apps på tværs af platforme uden rodet med ikke-native kode. Med kendskab til Dart-programmeringssproget kan en udvikler bygge apps til Android, iOS, web og desktop med et samlet UI-udseende på tværs af alle. Flutter 1.9 bragte macOS og Catalina-understøttelse i en alfatilstand, mens v1.12-udgivelsen modnede deres støtte forbi præ-alfa-tilstanden. Nu er Google ude med en ny version 1.17 af Flutter og version 2.8 af Dart, der markerer dem som de første stabile udgivelser til Flutter og Dart i 2020.

Flutter 1.17

Sidste måned havde Google annonceret ændringer i sin udgivelsesproces. Virksomhedens tidligere proces manglede klarhed over, hvornår udgivelser ville blive bygget, hvilken kode der ville være i den, og så videre. Nu planlægger Google at sende stabile udgivelser på en cirka kvartalsvis cyklus. Dette gav i sig selv nogle udfordringer, da release-infrastrukturen skulle ombygges til den nye release-proces. Nu frigives Flutter 1.17 til den stabile kanal for udviklere. Google har lukket 6.339 problemer siden deres forrige Flutter 1.12-udgivelse, og de har lukket flere fejl, end der er blevet åbnet i år, hvilket har ført til et nettofald på ~800 problemer.

Ud over fejlrettelser bringer Flutter 1.17 væsentlige ydeevneforbedringer, forbedret understøttelse af Metal på iOS og inkluderer nye Materiale-widgets.

Ydeevneforbedringer

Apps bygget med Flutter 1.17 versus ældre udgivelser vil opleve en hastighedsstigning på 20-37 % for standardnavigationstilfældet, hvor der er uigennemsigtige ruter uden gennemsigtighed. Der er også en betydelig forbedring i appstørrelser bygget med Flutter 1.17. Eksempelvis er Flutter Gallery-eksemplet nu 8,1 MB i 2020 mod 9,6 MB ved udgangen af ​​2019. Til hukommelsesbrug giver 1.17-udgivelsen en 70 % hukommelsesreduktion ved hurtig rulning gennem store billeder.

Metal er Apples lav-niveau grafik API, der giver næsten direkte adgang til den underliggende GPU af iOS-enheder. Flutter bruger nu Metal som standard, når den bygger til understøttede iOS-enheder, hvilket får Flutter-apps til at køre hurtigere. Den forbedrede Metal-understøttelse forbedrer gengivelseshastighederne for iOS-apps med omkring 50 % i gennemsnit. På iOS-enheder, der ikke fuldt ud understøtter Metal, nemlig enheder med iOS-versioner lavere end 10 og udgivet før A7-processoren, falder Flutter tilbage til OpenGL.

Flutter 1.17 tilføjer understøttelse af nye Materiale-widgets. Der er også opdateringer til eksisterende widgets. For eksempel hjælper NavigationRail udviklere med at tilføje responsive appnavigationsmodeller til apps og er fantastisk til apps, der kan skifte mellem mobil- og desktopformfaktorer. DatePicker- og TextSelection-overløbswidgets er også blevet opdateret: DatePickers nye visuals matcher de opdaterede materialeretningslinjer og tilføjer en ny tekstindtastningstilstand, mens TextSelection nu har forbedret pålidelighed til iOS og Android, når knapperne er længere, end der kan vises uden overfyldte. Endelig sender Google også den nye animationspakke, der giver forudbyggede animationer, der implementerer den nye Materiale bevægelse specifikation.

Andre ændringer i Flutter 1.17

  • Google har gennemført implementeringen af Typeskaladel af 2018 Material Design-specifikationen uden at ødelægge eksisterende Flutter-apps.
  • Google Fonts til Flutter v1.0 er også tilgængelig nu. Dette lader udviklere eksperimentere med og bruge enhver skrifttype fra fonts.google.com i deres app. Udvikleren kan beslutte, om skrifttypen skal samles med APK'en, eller om brugeren modtager skrifttypen ved at downloade den fra API'en.
  • Google har forbedret tilgængeligheden af ​​Flutter-apps med rettelser til rulning, tekstfelter og andre input-widgets.
  • Google forbereder sig også på at udskifte den nuværende version af Dart DevTools med den nye Flutter-version. Udviklere kan teste denne nye version ved at starte DevTools og derefter klikke på "breaker"-ikonet i øverste højre hjørne af DevTools. Den største forbedring i den nye Flutter-version af Dart DevTools er den nye netværksfane, som viser netværkstrafikken for din Flutter-app, når du trykker på knappen "Optag".
  • En anden forbedring er en eksperimentel "hurtig start"-indstilling, der giver dig mulighed for at starte Flutter app-fejlretning op til 70 % hurtigere, når du bygger en app til Android.

Google giver også en shoutout til Superformula-teamet for at lave det hele igen MGM Resorts Android-app i Flutter.


Dart 2.8

Dart er programmeringssproget, der bruges til at bygge apps i Flutter. Med udgivelsen af ​​Dart 2.8 SDK introducerer Google et par ændringer:

  • Forbedringer af pub klientværktøj, som bruges til at administrere pakker downloadet fra pub.dev pakkelager.
    • Google har forbedret ydeevnen af pub få ved at tilføje støtte til parallel hentning af pakker og udskyde publøb prækompilering.
    • Google har også tilføjet et nyt værktøj (pub forældet) for at sikre, at pakkeafhængigheder holdes ajour.
  • Forberedelse til Sound null-sikkerhed, da null-referencer er en almindelig kilde til programnedbrud, der sker, når kode forsøger at læse en variabel, der har en null-værdi.
    • Google forbereder sig på at tilføje understøttelse af god nul-sikkerhed i Dart, som vil sikre, at alle udtrykte variabler har værdier, der ikke er nul.
    • Implementering af lyd null-sikkerhed er et stort arbejde, der i første omgang vil forårsage brud i Dart-sproget og -bibliotekerne. Google ønsker, at udviklere skal være opmærksomme på disse brydende ændringer og indsende eventuelle problemer på deres problem tracker.

Du kan læse mere om disse og andre ændringer i detaljer i annonceringsindlæggene for Flutter 1.17 og Dart 2.8.