Top of flut? De voordelen en nadelen van “Flutter”

februari 22, 2019 | Bas van der Meer | , ,

Recent lanceerde Google een nieuwe mobile application creation toolkit: Flutter. Hoewel de naam weinig veelbelovend lijkt, biedt Flutter een gigantisch voordeel: dankzij Flutter schrijf je een code voor applicaties voor zowel iOS- en Android-apparaten. We experimenteren nu zo’n jaar met cross-platform ontwikkelframework Flutter en delen graag onze ervaring en kennis over Flutter. Hieronder vind je alles wat je moet weten over deze nieuwe toolkit, evenals de voordelen en nadelen.

Wat is Flutter?

Flutter laat programmeurs één code schrijven voor iOS en Android. Hierdoor hoef je de code dus niet meer te herschrijven voor een ander platform. Google heeft Flutter weliswaar opgezet, maar besloot dat het een open source toolkit moest worden. Hierdoor dragen honderden (en in de toekomst misschien wel duizenden) ontwikkelaars bij aan elkaars projecten, door code met elkaar te delen.

Programmeer je via Flutter, dan kan je gebruikmaken van standaard Android- en iOS-tools. Ook zijn alle onderliggende besturingssystemen te gebruiken. Denk bijvoorbeeld aan code en UI die je schrijft in Swift, Objective-C (voor iOS), Kotlin en Java (voor Android). De talrijke widgets zorgen ervoor dat alle pixels op het scherm te besturen zijn.  Daarbij valt  in te voegen in bestaande apps.

De voordelen van Flutter

Dat Flutter valt te integreren in bestaande applicaties, maakt het een meer wendbare toolkit. Hierdoor besparen programmeurs dubbel werk. Daarnaast valt er met Flutter real-time te zien welke wijzigingen in de app-code welk effect hebben. Google doopte dit tot ‘Stateful Hot Reload’. Onze programmeurs zijn daar gek op, want zo hoeven ze geen applicatie te herstarten, kunnen ze altijd bepaalde wijzigingen ongedaan maken en gaat de UI-implementatie een stuk sneller.

We ontdekten nog een aantal andere zaken na het gebruik van Flutter. We kwamen erachter dat het programmeren van een applicatie voor iOS en Android met Flutter ongeveer 1,7 keer sneller ging dan voorheen. Het implementeren van features ging een stuk sneller en koste minder moeite. De communicatie tussen teams ging beter, aangezien ze gezamenlijk aan een project werkte. Dit leidde tot eenheid in de teams. Door met één tool te werken, moet er ook een duidelijke visie geformuleerd worden. Dit komt het resultaat ten goede, zo is onze ervaring.

Over het algemeen valt te stellen dat met Flutter nog steeds goede kwaliteit te leveren is, maar dat dit sneller gaat dan bij andere toolkits. Er is een op maat gemaakte en soepele UI mogelijk. De tijd die we nodig hebben voor een Quality Assurance daalt met zo’n vijftig procent en we hebben slechts seconden nodig om gegevens te compileren. Daarbij is DART, de programmeertaal van Flutter, een moderne programmeertaal die makkelijk te leren valt. Zo’n zeventig procent van de broncode wordt gedeeld en hergebruikt, waardoor er in de toekomst nog meer tijd bespaard kan worden.

De nadelen van Flutter

Applicaties maken soms gebruik van hardware-features, zoals een camera. Het nadeel aan Flutter is dat deze toepassingen alleen opgeroepen kunnen worden in de ‘native code’. Soms zijn daar inmiddels goede plugins voor te vinden, maar ze leveren niet het gewenste effect op. Voor sommige toepassingen levert dat daardoor dubbel werk op. Dat geldt eigenlijk voor alle toepassingen die aan de verschillende besturingssystemen zijn gelinkt: SiriKit en Google Assistant leveren ook uitdagingen op.

Andere uitdagingen komen doordat het behoud en herstel van de staat van een applicatie nog handmatig moet gebeuren in Flutter. Standaard URL-schema’s worden nog niet ondersteund in tekst-widgets, wat onhandig is. Ook het gebrek aan libraries van derde partijen zorgt voor beperkingen ten opzichte van andere tools. Het assetmanagement is niet erg gebruiksvriendelijk en er zijn geen tools voor Flutter bekend die het mogelijk maken om een crash van de applicatie te melden.

Conclusie

Flutter is weliswaar niet meer in bèta, maar we zijn benieuwd hoe deze toolkit zich zal gaan ontwikkelen. Sommige onderdelen worden niet ondersteund of ontbreken simpelweg in Flutter. Dat maakt het onmogelijk om al compleet in Flutter te programmeren.

Het voornaamste voordeel is de tijdswinst en het gebruiksgemak van Flutter: we programmeerden maar liefst 1.7 keer sneller  dan anders. We besparen overigens niet alleen tijd tijdens het schrijven van code, maar ook in de kwaliteitstest en het compileren van gegevens. Teams werken daarbij ook beter samen dankzij Flutter. Doordat Flutter een open source toolkit is, wordt er code gedeeld en vallen applicaties in de toekomst sneller te ontwikkelen. Dat is al een belangrijke meerwaarde en wat ons betreft een reden genoeg om de ontwikkelingen rondom Flutter te blijven volgen.

Hoe denk jij eigenlijk over Flutter? En wil je meer weten over deze toolkit? Neem dan nu contact op