Terug naar overzicht

Flutter: Onze mening

Wat is Flutter? Flutter is een SDK om mobiele apps mee te bouwen in Dart. Kort uitgelegd kan een programmeur dankzij een SDK applicaties bouwen. De focus is hier meer gericht op mobiele applicaties maar het is ook nog mogelijk om te exporteren naar het web of desktop applicaties. Daarnaast is Dart een programmeertaal ontwikkeld door Google die de beste elementen ontleent aan de huidige generatie programmeertalen zoals Java, JavaScript en C#. Zowel Flutter als Dart zijn ontworpen met developer productiviteit in het achterhoofd.

Jos De Berdt

Flutter wordt vaak geprezen voor de snelheid waarmee applicaties opgezet kunnen worden en hoe gestructureerd de uiteindelijke code is. Ook het feit dat je met één codebase een app voor zowel Android als voor IOS kan maken, kan op veel bijval rekenen. Dat is veel interessanter is dan twee codebases te moeten onderhouden. De laatste ontwikkelingen laten ook toe om dezelfde codebase voor zowel web als desktop te gebruiken.

In tegenstelling tot andere frameworks tekent het Flutter framework elke pixel zelf. Het creëert een canvas en gebruikt dat op te tekenen. Hierdoor hebben ze het proces zelf volledig in handen en halen ze de hoge snelheid.

Bij Sweet Mustard hebben 4 ontwikkelaars met verschillende achtergronden Flutter onafhankelijk van elkaar aan de tand gevoeld. Dit zijn onze experten en hun inzichten…

Onze testers

Stijn schrijft voornamelijk backends in Java, maar maakt al graag eens een uitstapje naar front-end development in Angular.

Jos heeft behoorlijk wat ervaring opgebouwd als front-end react (en react native) ontwikkelaar maar kan zich ook wel uit de voeten maken in NodeJS.

Korneel heeft een voorliefde voor het creëren van gebruikersinterfaces maar heeft ook ervaring met backend development.

Mark is hoofdzakelijk een backend Java developer. Hij beweegt zich soms op de frontend om projecten te laten slagen, maar frontend is niet waar zijn passie ligt. Mark vindt mooie code met testen zeer belangrijk en vraagt zich af waarom niet iedereen op die manier werkt.

Hoe is Flutter op jouw radar gekomen en wat trok er je aan om het te leren?

Stijn

Ik was al verliefd op Dart het moment dat ik er begon mee te experimenteren in 2012. Toen ik vernam dat er ook een framework kwam om mobiele apps mee te bouwen wou ik ook dat direct eens uitproberen.

Korneel

Ik ontdekte Flutter tijdens een Google I/O '17 presentatie waarin Flutter gebruikt werd om een native gecompileerde app voor zowel iOS als Android te bouwen met een gedeelde codebase. Ze slaagden erin om een aangepaste, natuurlijke look and feel te realiseren voor beide platformen in minder dan 400 lijnen Dart code. De ontwikkeling ervaring was uitstekend doordat Flutter de wijzigingen in de code in minder dan een seconde kan weergeven op het scherm. Het zag er veelbelovend uit!

Jos

Collega’s waren lyrisch over Dart en Flutter. Ik had juist mijn eerste project in React Native achter de kiezen en was op zoek naar iets nieuws om te leren. Doordat ik al geruime tijd in JavaScript en React programmeerde, dacht ik dat Flutter mij minder ging kunnen bekoren. Een veronderstelling die verkeerd bleek te zijn...

Mark

Op een bepaald moment begon ik met af te vragen ‘Wat is er gebeurd met Dart?’ en zo ontdekte ik Flutter.

Wat zijn de grootste voordelen als je Flutter vergelijkt met andere manieren om mobiele apps te bouwen?

Stijn

Flutter is een pak consistenter en eenvoudiger dan native app development en frameworks als Angular en React Native. Flutter sleept geen lange geschiedenis mee, wat helpt om een consistente API te bekomen. Alle code is in essentie Dart code. Dart is expressief genoeg om er layouts mee te definiëren waardoor je geen XML of andere markup taal nodig hebt. Flutter voelt als een frisse wind in de wereld van de app development.

Korneel

Flutter wordt meestal vergeleken met React Native omdat beide toolkits het mogelijk maken om native gecompileerde apps te bouwen vanaf één gedeelde codebase.

Beide promoten een declaratieve aanpak voor het bouwen van gebruikersinterfaces. Dit betekent dat je simpelweg specificeert hoe de gebruikersinterface eruit zou moeten zien gegeven de huidige state (de staat van alle variabelen op een gegeven moment) van de app. Vervolgens vertrouw je op het framework om de view efficiënt opnieuw op het scherm te tekenen telkens wanneer de state verandert.

In React Native schrijf je JavaScript code die communiceert met native platform-API's en UI-componenten. De communicatie gebeurt over een zogenaamde brug.

Flutter gebruikt dezelfde grafische engine als Google Chrome om op een efficiënte manier UI-componenten op het scherm te tekenen die er precies hetzelfde uitzien als native iOS en Android UI-componenten. Deze aanpak heeft twee voordelen. Ten eerste is de gebruikersinterface heel aanpasbaar omdat Flutter elke pixel zelf op het scherm tekent. En ten tweede is de app performanter doordat Flutter veel minder moet communiceren over de brug. Flutter compileert je Dart code bovendien naar native machinecode die van nature heel performant is.

Jos

Het programmeren in Flutter en React Native is vrij gelijklopend. Er zijn concepten die in beide frameworks terug komen wat wel maakt dat ik me snel thuis voelde in Flutter. De integratie met IDE’s, ontwikkelsnelheid en kwaliteit van het eindproduct is in Flutter zeer goed. Een extra pluspunt voor mij is de Redux module van Flutter die gelijkaardig zijn aan Redux in React.

Mark

Productiviteit. Focus kunnen hebben op de bedrijfswaarde van de app in plaats van de technologie. Flutter gebruikt Dart als onderliggende taal, en Dart is eigenlijk een ‘saaie’ taal (de woorden van de makers). Saai is goed. Saai is voorspelbaar. Saai spaart tijd en geld uit. Dart zal heel familiar aanvoelen voor iedereen die Java of Javascript kent. Het idee om de dag van vandaag 2 sets van code te onderhouden, 1 voor iOS en 1 voor Android, is gewoon te zot voor woorden. We zijn 2020. Flutter gaat zelfs verder en voegt web en desktop toe aan de mogelijkheden.

Wat waren de uitdagingen die je tegen gekomen bent bij het maken van Flutter applicaties?

Stijn

Taken in de achtergrond draaien is nog niet voorzien in Flutter. Om dit aan de praat te krijgen moet je stukken native code voor Android en iOS schrijven. De complexiteit daarvan staat in schril contrast met de Flutter code zelf.

Korneel

Ik moest de Dart programmeertaal en het ecosysteem leren kennen. In Flutter is bijna alles een widget. Het was even wennen aan het gebruik van widgets in plaats van CSS voor lay-out modellen.

Jos

Voor mij persoonlijk was het de types variabelen. Flutter is hybrid statisch getyped, maar de voordelen van expliciet typing in Flutter (en de IDE integraties) maakt het interessant. Toch zijn er behoorlijk wat meer types dan dat ik gewoonlijk gebruik.

Mark

Ik had problemen met een goede manier te vinden om de applicatie state te beheren en een widget up te daten naargelang de data veranderd. Flutter heeft daar ook een tijdje naar op zoek geweest.

De community en documentatie van een programmeertaal is vaak heel belangrijk voor het succes ervan. Hoe ervaar jij deze zaken bij Flutter?

Stijn

De documentatie is zeer begrijpbaar. Ook het platform zelf toont foutboodschappen waarmee je snel de oorzaak van het probleem kunt achterhalen. De community is nog redelijk klein, maar actief en hulpvaardig.

Korneel

De officiële documentatie is geweldig, ondanks het tot voor kort ontbreken van documentatie over state management. Vergeleken met JavaScripts package manager NPM worden er minder open source packages gepubliceerd op Darts package manager Pub. De kwaliteit van de meeste packages is echter uitstekend en de Dart programmeertaal bevat zelf al veel functionaliteit. Flutter wint snel aan populariteit en ik verwacht dat de community en het ecosysteem zullen meegroeien.

Jos

De documentatie is “to the point”. De classes en class methods zijn goed gedocumenteerd en duidelijk. De community en de daarbij horende vragen die gesteld worden, zijn minder in getallen (in vergelijking met React Native). Toch zijn andere Flutter developers actief en behulpzaam.

Mark

Documentatie is één van de sterkste punten van Flutter en Dart (naast de tools en integraties).

Waarom is Flutter een optie die overwogen moet worden als een bedrijf een app overweegt?

Stijn

Flutter is een sterke kandidaat voor het bouwen van mobiele apps met de focus op productiviteit, onderhoudbaarheid en goede user experience. Als je veel hardware functies van de smartphone nodig hebt zou ik misschien nog eerder opteren voor een native app, maar in andere gevallen is Flutter een solide keuze!

Korneel

Flutter is zeker het overwegen waard. Vooral als de beoogde app voordeel kan halen uit een unieke gebruikersinterface aangepast aan het eigen merk.

Jos

Voor prototypes en proof of concept zou ik niet naar iets anders kijken. Voor 90% van de productie apps zou Flutter zeker ook een goede keuze zijn. Echter als het gaat om heel specifieke zaken zoals games , AR of een project die langdurig native modules moet aanspreken , zou ik toch eerder geneigd zijn om iets anders te nemen.

Mark

Flutter is zeker en vast niet iets kleins die weg zal gaan. In China wordt Flutter zeer hevig gebruikt. Alibaba heeft hun app Xianyu geschreven in Flutter (meer dan 50 miljoen downloads). Google gebruikt ook Flutter voor hun Adsense app. Meer voorbeelden vind je terug op https://flutter.dev/showcase.

Een bedrijf zou Flutter moeten overwegen omdat de maturiteit van de omgeving hun geld zal besparen. Één project voor Android en iOS betekent snelle ontwikkeling (met hot reloading), en doordat de taal vrij gelijkaardig is, hebben ze al ontwikkelaars in huis die ermee kunnen werken.

Deze website maakt gebruik van cookies om ervoor te zorgen dat u de beste surfervaring op onze website krijgt. Meer info