Google heeft updates uitgebracht voor de Flutter- en Dart-SDK's, die een hele reeks verbeteringen met zich meebrengen voor platformonafhankelijke, uniforme ontwikkeling. Lees verder voor meer!
Flutter is een platformonafhankelijk programmeerframework, met als doel de problemen van het ontwikkelen van platformonafhankelijke apps op te lossen zonder de rommel van niet-native code. Met kennis van de Dart-programmeertaal kan een ontwikkelaar apps bouwen voor Android, iOS, internet en desktop met een uniforme UI-look voor alles. Fladderen 1.9 bracht macOS- en Catalina-ondersteuning in een alfastatus, terwijl v1.12-release bracht hun ondersteuning voorbij de pre-alpha-status. Nu is Google uit met een nieuwe v1.17-release van Flutter en v2.8-release van Dart, waarmee ze worden gemarkeerd als de eerste stabiele releases voor Flutter en Dart in 2020.
Fladderen 1.17
Vorige maand had Google dat ook heeft wijzigingen aangekondigd in het releaseproces. In het eerdere proces van het bedrijf ontbrak het aan duidelijkheid over wanneer releases zouden worden gebouwd, welke code erin zou zitten, enzovoort. Nu is Google van plan stabiele releases uit te brengen in een ruwweg driemaandelijkse cyclus. Dit op zichzelf bracht een aantal uitdagingen met zich mee, omdat de release-infrastructuur opnieuw moest worden ingericht voor het nieuwe releaseproces. Nu wordt Flutter 1.17 vrijgegeven op het stabiele kanaal voor ontwikkelaars. Google heeft sinds de vorige release van Flutter 1.12 6.339 problemen gesloten en ze hebben meer bugs gesloten dan er dit jaar zijn geopend, wat heeft geleid tot een netto afname van ~800 problemen.
Naast bugfixes brengt Flutter 1.17 substantiële prestatieverbeteringen, verbeterde ondersteuning voor Metal op iOS en nieuwe Material-widgets.
Prestatieverbeteringen
Apps gebouwd met Flutter 1.17 versus oudere releases zullen een versnelling van 20-37% zien voor het standaardnavigatiegeval waarin er ondoorzichtige routes zijn zonder transparantie. Er is ook een aanzienlijke verbetering in de app-groottes die zijn gebouwd met Flutter 1.17. Het Flutter Gallery-voorbeeld is nu bijvoorbeeld 8,1 MB in 2020, tegenover 9,6 MB eind 2019. Wat het geheugengebruik betreft, brengt versie 1.17 een geheugenreductie van 70% met zich mee bij het snel scrollen door grote afbeeldingen.
Metaal is Apple's grafische API op laag niveau die vrijwel directe toegang biedt tot de onderliggende GPU van iOS-apparaten. Flutter gebruikt nu standaard Metal bij het bouwen voor ondersteunde iOS-apparaten, waardoor Flutter-apps sneller werken. De verbeterde Metal-ondersteuning verbetert de weergavesnelheid van iOS-apps gemiddeld met ongeveer 50%. Op iOS-apparaten die Metal niet volledig ondersteunen, namelijk apparaten met iOS-versies lager dan 10 en uitgebracht vóór de A7-processor, valt Flutter terug op OpenGL.
Flutter 1.17 voegt ondersteuning toe voor nieuwe materiaalwidgets. Er zijn ook updates voor bestaande widgets. NavigationRail helpt ontwikkelaars bijvoorbeeld om responsieve app-navigatiemodellen aan apps toe te voegen en is geweldig voor apps die kunnen schakelen tussen mobiele en desktop-vormfactoren. DatePicker en TextSelection overflow-widgets zijn ook bijgewerkt: de nieuwe visuals van DatePicker komen overeen met de bijgewerkte materiaalrichtlijnen en voegen een nieuwe toe tekstinvoermodus, terwijl TextSelection nu de betrouwbaarheid voor iOS en Android heeft verbeterd wanneer knoppen langer zijn dan zonder kan worden weergegeven overlopend. Ten slotte verzendt Google ook het nieuwe animatiepakket dat kant-en-klare animaties biedt die het nieuwe implementeren Materiële beweging specificatie.
Andere wijzigingen in Flutter 1.17
- Google heeft de implementatie van de Type Scale-gedeelte van de Material Design-specificatie van 2018 zonder bestaande Flutter-apps te verbreken.
- Google Fonts voor Flutter v1.0 is nu ook verkrijgbaar. Hierdoor kunnen ontwikkelaars experimenteren met elk lettertype en dit gebruiken fonts.google.com in hun app. De ontwikkelaar kan beslissen of hij het lettertype wil bundelen met de APK of dat de gebruiker het lettertype ontvangt door het te downloaden via de API.
- Google heeft de toegankelijkheid van Flutter-apps verbeterd met oplossingen voor scrollen, tekstvelden en andere invoerwidgets.
- Google bereidt zich ook voor om de huidige versie van Dart DevTools te vervangen door de nieuwe Flutter-versie. Ontwikkelaars kunnen deze nieuwe versie testen door DevTools te starten en vervolgens op het "breaker"-pictogram in de rechterbovenhoek van DevTools te klikken. De grootste verbetering in de nieuwe Flutter-versie van Dart DevTools is het nieuwe tabblad Netwerk dat het netwerkverkeer voor uw Flutter-app toont wanneer u op de knop "Opnemen" drukt.
- Een andere verbetering is een experimentele "snelle start"-optie waarmee u tot 70% sneller kunt beginnen met het debuggen van Flutter-apps wanneer u een app voor Android bouwt.
Google geeft ook een shoutout naar het Superformula-team voor het opnieuw maken van het geheel MGM Resorts Android-app in Flutter.
Dart 2.8
Dart is de programmeertaal die wordt gebruikt voor het bouwen van apps in Flutter. Met de release van de Dart 2.8 SDK introduceert Google een aantal wijzigingen:
- Verbeteringen aan de kroeg clienttool, die wordt gebruikt om pakketten te beheren die zijn gedownload van de pakketrepository pub.dev.
- Google heeft de prestaties van kroeg krijgen door ondersteuning toe te voegen voor het parallel ophalen van pakketten en uitstellen kroeg gerund precompilatie.
- Google heeft ook een nieuwe tool toegevoegd (kroeg verouderd) om ervoor te zorgen dat pakketafhankelijkheden up-to-date worden gehouden.
- Voorbereiding op goede null-veiligheid, aangezien null-referenties een veelvoorkomende bron zijn van applicatiecrashes die optreden wanneer code probeert een variabele te lezen die een null-waarde heeft.
- Google bereidt zich voor om ondersteuning toe te voegen voor een goede null-veiligheid in Dart, die ervoor zal zorgen dat alle uitgedrukte variabelen niet-null-waarden bevatten.
- Het implementeren van gedegen nulveiligheid is een enorme onderneming die in eerste instantie breuken zal veroorzaken in de Dart-taal en -bibliotheken. Google wil dat ontwikkelaars hiervan op de hoogte zijn deze baanbrekende veranderingen en eventuele problemen op hun probleemtracker.
U kunt meer over deze en andere wijzigingen in detail lezen in de aankondigingsposts voor Flutter 1.17 en Dart 2.8.