Google har släppt uppdateringar till Flutter- och Dart-SDK: er, vilket tar med sig en mängd förbättringar för enhetlig utveckling över plattformar. Läs vidare för mer!
Flutter är en plattformsoberoende programmeringsram, som syftar till att lösa problemen med att utveckla plattformsoberoende appar utan röran med icke-infödd kod. Med kunskap om programmeringsspråket Dart kan en utvecklare bygga appar för Android, iOS, webben och skrivbordet med ett enhetligt UI-utseende över alla. Fladder 1.9 tog stöd för macOS och Catalina i ett alfatillstånd, medan v1.12-versionen mognade deras stöd förbi pre-alfa-tillståndet. Nu är Google ute med en ny version 1.17 av Flutter och version 2.8 av Dart, vilket markerar dem som de första stabila utgåvorna för Flutter och Dart 2020.
Fladdrar 1.17
Förra månaden hade Google tillkännagav ändringar i releaseprocessen. Företagets tidigare process saknade klarhet om när releaser skulle byggas, vilken kod som skulle finnas i den, och så vidare. Nu planerar Google att skicka stabila utgåvor på en ungefär kvartalsvis cykel. Detta i sig innebar några utmaningar, eftersom release-infrastrukturen var tvungen att omarbetas för den nya releaseprocessen. Nu släpps Flutter 1.17 till den stabila kanalen för utvecklare. Google har stängt 6 339 nummer sedan deras tidigare Flutter 1.12-utgåva, och de har stängt fler buggar än vad som har öppnats i år, vilket leder till en nettominskning på ~800 nummer.
Förutom buggfixar, ger Flutter 1.17 avsevärda prestandaförbättringar, förbättrat stöd för Metal på iOS och inkluderar nya Material-widgets.
Prestanda förbättringar
Appar byggda med Flutter 1.17 jämfört med äldre versioner kommer att se en 20-37 % snabbhet för standardnavigeringsfallet där det finns ogenomskinliga rutter utan genomskinlighet. Det finns också en avsevärd förbättring av appstorlekar byggda med Flutter 1.17. Exempelvis är Flutter Gallery-exemplet nu 8,1 MB 2020 jämfört med 9,6 MB i slutet av 2019. För minnesanvändning ger versionen 1.17 en 70 % minnesminskning vid snabb rullning genom stora bilder.
Metall är Apples grafik-API på låg nivå som ger nästan direkt tillgång till den underliggande grafikprocessorn på iOS-enheter. Flutter använder nu Metal som standard när man bygger för iOS-enheter som stöds, vilket gör att Flutter-appar körs snabbare. Det förbättrade Metal-stödet förbättrar renderingshastigheten för iOS-appar med cirka 50 % i genomsnitt. På iOS-enheter som inte fullt ut stöder Metal, nämligen enheter med iOS-versioner lägre än 10 och släppta före A7-processorn, faller Flutter tillbaka till OpenGL.
Flutter 1.17 lägger till stöd för nya material-widgets. Det finns också uppdateringar av befintliga widgets. Till exempel hjälper NavigationRail utvecklare att lägga till responsiva appnavigeringsmodeller till appar och är bra för appar som kan växla mellan mobila och stationära formfaktorer. DatePicker och TextSelection overflow widgets har också uppdaterats: DatePickers nya grafik matchar de uppdaterade materialriktlinjerna och lägger till en ny textinmatningsläge, medan TextSelection nu har förbättrad trohet för iOS och Android när knapparna är längre än vad som kan visas utan överfulla. Slutligen levererar Google också det nya animationspaketet som tillhandahåller förbyggda animationer som implementerar det nya Materialrörelse Specifikation.
Andra ändringar i Flutter 1.17
- Google har slutfört implementeringen av Typskala del av 2018 års materialdesignspecifikation utan att förstöra befintliga Flutter-appar.
- Google Fonts for Flutter v1.0 är också tillgänglig nu. Detta låter utvecklare experimentera med och använda alla teckensnitt från fonts.google.com i deras app. Utvecklaren kan bestämma om typsnittet ska paketeras med APK: n eller om användaren får typsnittet genom att ladda ner det från API: et.
- Google har förbättrat tillgängligheten för Flutter-appar med korrigeringar för rullning, textfält och andra inmatningswidgets.
- Google förbereder sig också för att byta ut den nuvarande versionen av Dart DevTools med den nya Flutter-versionen. Utvecklare kan testa den här nya versionen genom att starta DevTools och sedan klicka på "breaker"-ikonen i det övre högra hörnet av DevTools. Den största förbättringen i den nya Flutter-versionen av Dart DevTools är den nya Network-fliken som visar nätverkstrafiken för din Flutter-app när du trycker på "Record"-knappen.
- En annan förbättring är ett experimentellt "snabbstart"-alternativ som låter dig starta Flutter-appens felsökning upp till 70 % snabbare när du bygger en app för Android.
Google ger också en shoutout till Superformula-teamet för att göra om hela MGM Resorts Android-app i Flutter.
Dart 2.8
Dart är programmeringsspråket som används för att bygga appar i Flutter. Med lanseringen av Dart 2.8 SDK introducerar Google ett par ändringar:
- Förbättringar av pub klientverktyg, som används för att hantera paket som laddas ner från paketförrådet pub.dev.
- Google har förbättrat prestandan för pub få genom att lägga till stöd för parallell hämtning av paket och skjuta upp pub körning förkompilering.
- Google har också lagt till ett nytt verktyg (pub föråldrad) för att säkerställa att paketberoenden hålls uppdaterade.
- Förberedelse för Ljud nollsäkerhet, eftersom nollreferenser är en vanlig källa till programkrascher som inträffar när kod försöker läsa en variabel som har ett nollvärde.
- Google förbereder sig för att lägga till stöd för sund nollsäkerhet i Dart, vilket kommer att säkerställa att alla uttryckta variabler har icke-nullvärden.
- Att implementera ljud nollsäkerhet är ett enormt åtagande som initialt kommer att orsaka avbrott i Dart-språket och biblioteken. Google vill att utvecklare ska vara medvetna om dessa brytande förändringar och lämna in eventuella problem på deras fråga spårare.
Du kan läsa mer om dessa och andra ändringar i detalj i tillkännagivandeinläggen för Flutter 1.17 och Dart 2.8.