Is Flutter de toekomst voor apps?

Flutter-Blog-Pinch

Laatste update: juli 2022

Na een aantal succesvolle hackathon-experimenten met Flutter, maakten we bij Pinch halverwege 2019 onze eerste echte app binnen het nieuwe platform van Google in opdracht van Youbahn. Flutter is een software-ontwikkelkit, ontwikkeld door Google om (onder andere) iOS- en Android-apps mee te maken. Waar je bij native apps per besturingssysteem (iOS en Android) een aparte app ontwikkelt, stelt Flutter je als developer in staat dit in één keer en met dezelfde codebase te doen.

NIET UNIEK, WEL VEELBELOVEND

Flutter is daarin niet uniek. Er zijn de afgelopen jaren meer van dit soort frameworks ontwikkeld die hetzelfde beloven, zoals Ionic, React Native en Xamarin. Van die frameworks zijn we bij Pinch nooit echt fan geworden. Zowel qua gebruikservaring als stabiliteit van de apps die hiermee worden gecreëerd, bleven deze toolkits achter bij de native apps die we met de tools van Apple (Swift) en Google (Kotlin) maakten. Ook in het development-proces zorgde dit gereedschap geregeld voor frustraties. Maakt Flutter de belofte wel waar? Of is het de volgende in de rij suboptimale toolkits?

DE VOORDELEN VOOR DEVELOPERS

Dit zijn de drie belangrijkste voordelen voor developers:

#1: Directe invloed op schermen scheelt tijd

Eén van de grote voordelen van Flutter is dat je, in tegenstelling tot bijvoorbeeld React Native, als developer op een directere manier invloed hebt over de schermen (‘views’) van de app. Elke pixel heb je onder controle. Ook kun je bij alles wat je creëert of aanpast direct het resultaat in de app zien (‘interpreted compiled’). Dat is voor developers heel prettig. Je hoeft niet, zoals bij native apps, een pakketje te maken (‘compilen’) om het resultaat van je werk op het scherm te zien. En dat scheelt een hoop tijd.

#2: Sneller je weg vinden door minder gelaagdheid

Flutter-projecten zijn ook minder gelaagd dan native projecten. Dat maakt het, ook voor developers met beperkte Flutter-ervaring, eenvoudig om je weg in een project te vinden. De ontwikkeltaal van Flutter is Dart. Voor developers voelt dit enerzijds als een stapje terug wanneer je gewend bent aan iOS-taal Swift en Android-taal Kotlin, maar door de frequente updates komt Dart steeds dichterbij Swift en Kotlin. Niet alleen door beweging vanuit Dart, overigens. Denk bijvoorbeeld aan de introductie van async/await in Swift, dat in Dart al gebruikelijk is.

#3: ‘Strenge’ Dart-taal scheelt debugging-tijd

Zeker in vergelijking met React Native is Dart een veel ‘strengere’ taal. Je wordt er dus snel attent op gemaakt als je foutjes maakt, wat weer tijd scheelt bij het signaleren van bugs (‘debugging’). Android-developers hebben iets eerder de neiging om Flutter te gebruiken. Het is immers een Google-product en Dart lijkt als taal sterk op Java, de voorloper van Kotlin als taal voor Android-apps. Toch hebben we gemerkt dat ook iOS-developers er prima mee uit de voeten kunnen. Sowieso blijft de kennis van native appontwikkeling onmisbaar bij het creëren van Flutter-apps. Conclusie: al met al kun je als developer uitstekend met Dart en Flutter werken.

VOORDELEN VAN FLUTTER VOOR DE BUSINESS

Ook vanuit de bedrijfsmatige kant heeft Flutter een aantal grote voordelen, waaronder:

#1: Ideaal voor het maken van prototypes en MVP’s

Een heel groot voordeel is de korte tijd waarin je een werkend geheel kunt laten zien op zowel Android- als iOS-devices. Dat maakt Flutter in het bijzonder geschikt voor het maken van prototypes en minimum viable products (MVP’s).

#2: Besparing op ontwikkeltijd en -kosten

Met Flutter kan dus snel worden ontwikkeld. In het geval van onze eerste Flutter-app voor Youbahn hadden we twaalf manweken nodig voor de volledige scope van de eerste versie van de app. Als we dit native hadden gedaan, was dit zo’n zestien manweken geweest. Een besparing dus van 25 procent. En dan was dit ook nog eens onze eerste Flutter-app.

#3: 120 frames per second

Flutter is ook voorbereid op het gebruik van 120 frames per second (fps). Dit houdt in dat, zeker bij animaties, je een nog rijkere visuele ervaring aan apps kunt geven. Natuurlijk moet de telefoon of tablet van de gebruiker hier dan ook klaar voor zijn.

WAT KAN BETER?

Omdat Flutter een relatief nieuw framework is, ondersteunen veel software development kits (SDK’s, oftewel verzamelingen van hulpmiddelen tijdens het programmeren) Flutter nog niet standaard. De integratie van die SDK’s in de app kost dus meer tijd dan bij native projecten, waar de SDK’s als vanzelf werken. Wel moet worden gezegd dat Flutter meer en meer ondersteuning krijgt. Zo biedt een groeiend aantal partijen (zoals Firebase) first-party support voor hun SDK’s voor Flutter. Daarnaast ontwikkelt Google veel first-party oplossingen voor bijvoorbeeld in-app purchases, Google Maps en advertisement. En ook de Flutter-community werkt hard aan het beschikbaar stellen van allerlei oplossingen. Het feit dat Flutter door veel grote bedrijven wordt opgepakt – van Toyota en eBay tot besturingssysteem Ubuntu en de neobank Nubank – geeft dit alles extra wind in de zeilen. Een ander aandachtspunt is het zogenoemde state management. Dit houdt bijvoorbeeld in dat de app onthoudt waar de gebruiker is gebleven na het sluiten van de app. Echter: waar dit voorheen evident een zwakke plek was, is het state management nu een heel stuk beter geworden omdat het in het framework zelf is opgenomen. In het verleden was het ook problematisch dat Flutter bij het debuggen soms naar de verkeerde plek verwees, maar ook de foutmeldingen zijn een heel stuk beter geworden (in sommige gevallen zelfs als ze van de native kant komen).

KAN ELKE APP IN FLUTTER WORDEN GEMAAKT?

We zouden Flutter nog niet blind voor alle apps adviseren. Dat geldt met name als er veel integraties nodig zijn met third-party SDK’s en er veel hardware-zaken (zoals sensoren) in de telefoon worden gebruikt. Zo ligt Flutter bijvoorbeeld niet voor de hand voor gaming-apps, aangezien die graphics-intensief zijn en veel gebruikmaken van het beeldscherm.

GAAT FLUTTER DE NATIVE ONTWIKKELTOOLS VAN APPLE EN GOOGLE VERVANGEN?

De komende jaren niet. Al verwachten we wel dat het aantal Flutter-apps snel gaat toenemen. Dat zien we nu al gebeuren: op GitHub is de development-community inmiddels groter dan die van React Native. Wat zeker helpt, is dat sinds de release van Flutter 3 alles wordt ondersteund: mobile (Android en iOS), web én desktop (Windows, MacOS en Ubuntu). Toch blijven de native ontwikkeltools volgens ons voorlopig dominant als het gaat om app-development.

YOUBAHN: ONZE EERSTE FLUTTER-APP

Na een aantal succesvolle experimenten was Youbahn de eerste Flutter-app die Pinch in opdracht van een klant heeft gebouwd. Met het eigentijdse uitzendbureau Youbahn, een soort Uber voor werk, kunnen werkzoekenden on-demand uitzendwerk vinden en daar meteen op solliciteren. Vanwege het beperkte budget en de wens om snel live te gaan is (in overleg met Youbahn) gekozen voor Flutter. Dankzij dit framework konden we de app binnen twaalf manweken realiseren – bij native zouden dit er zestien zijn geweest. Omdat Youbahn als start-up snel in beweging is, is het bijzonder waardevol dat we wijzigingen maar één keer hoeven door te voeren voor beide besturingssystemen (Android en iOS). Na Youbahn heeft ons dedicated Flutter-team – dat deels gevestigd is in het Spaanse Málaga – nog verscheidene andere succesvolle Flutter-apps ontwikkeld, waaronder Proudwheels en Travel Diaries.

CONCLUSIE

Flutter is een veelbelovend ontwikkelframework waarmee snel goede apps voor zowel iOS als Android zijn te maken. Veel soorten apps komen in aanmerking voor ontwikkeling in Flutter, alleen hardware-intensieve applicaties zullen zich er minder voor lenen. Vanwege de ontwikkelsnelheid is Flutter ook bijzonder geschikt voor het ontwikkelen van prototypes en MVP’s. Flutter wordt in snel tempo volwassen. Er gelden nog wat uitdagingen, maar tegelijkertijd komen er steeds meer oplossingen vanuit Google, de community en partijen die SDK’s beschikbaar stellen. Developers kunnen bovendien altijd handwerk toepassen als ze ergens tegenaan lopen waarvoor (nog) geen standaardoplossing beschikbaar is. We verwachten dat Flutter de komende jaren enorm aan populariteit gaat winnen, maar dat het native ontwikkelde apps voorlopig nog niet volledig gaat verdringen.

 

Gerelateerde artikelen

Heb jij vragen over het ontwikkelen van een app? Wij bellen je terug!