In een eerder blogartikel benadrukte ik dat een native app ontwikkelen lange tijd gezien werd als een must. Ik legde de nadruk op de keuzes die je kan maken om de juiste beslissing te kunnen maken. Daarin had ik mij voorgenomen om niet specifiek te richten op de mogelijkheden van native apps. Voorheen werd specifiek ontwikkelen voor Apple of Android als ‘lastig’, ‘duur’ en ‘veel tijd’ ervaren, omdat je dit moest doen in verschillende talen; namelijk Swift en Java/Kotlin. Om dit probleem op te lossen heeft Google een cross-platform gelanceerd genaamd Flutter. Is Flutter daarmee de toekomst van cross-platform native apps?
Flutter zet zichzelf in de markt als een UI-toolkit om native compiled applicaties te ontwikkelen voor mobile, web en desktop. Dit doe je door middel van een single codebase, wat wil zeggen dat je één stuk code hebt wat zich laat compileren naar de specifieke platformen die jij wenst. Om een Flutter app te ontwikkelen zal je de (vrij) nieuwe programmeertaal Dart je eigen moeten maken. Flutter leent zich ervoor om snel te ontwikkelen door Stateful Hot Reload en ben je de baas over elke pixel van de applicatie.
Dart lijkt enigszins op een combinatie tussen Java/C# en Javascript. Het verdeelt zichzelf over drie verschillende eigenschappen. Een geoptimaliseerde UI, productieve development ervaring en snelle performance op alle platformen. Dart is – volgens wat zij zelf schrijven – makkelijk om te leren. Je kunt gemakkelijk code (on)afhankelijk van elkaar maken. Door middel van je eigen editor kan jij dingen als debugging snel voor elkaar krijgen. Ook passen zij AOT-compile toe om zo de juiste performance ervaring te bereiken.
Als je kijkt naar de voor- en nadelen, dan zie je gelijkenissen met andere hybride frameworks. De juiste keuze hangt af van ervaring, doelen en vereisten. Flutter zou ik overwegen wanneer de focus echt ligt op performance. Het is hoe dan ook sneller dan oplossingen die door middel van een webview wordt geladen. Door de vele breaking changes zou ik eerder neigen bij grotere apps voor een andere oplossing (bijvoorbeeld React Native) te kiezen. Het heeft – net als vele anderen frameworks – zeker potentie. Nogmaals verwijzend naar mijn eerdere blogartikel, voeg daarbij Flutter zeker toe als optie.