februari 3, 2020

Is Flutter de toekomst voor apps?

Of is het de volgende in de rij suboptimale toolkits?

Na een aantal succesvolle hackathon experimenten met Flutter, maakten we bij Pinch halverwege 2019 onze eerste echte Flutter app in opdracht van YouBahn. Flutter is een softwareontwikkelkit, ontwikkeld door Google om (oa) 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, met dezelfde “codebase”, te doen. Flutter is daarin niet uniek; er zijn de afgelopen jaren meer van dit soort “frameworks” ontwikkeld die hetzelfde beloven, zoals Ionic en React Native. Van die frameworks zijn we bij Pinch nooit echt fan geworden. Zowel qua gebruikservaring, als stabiliteit van de hiermee gecreëerde apps, bleven deze “toolkits” achter bij de native apps die we met de door Apple (Swift) en Google (Kotlin) ontwikkelde tools 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?

 

Over De YouBahn app

YouBahn is een uitzendbureau, maar dan anders. Vergelijk YouBahn met Uber, maar dan voor werk. Heb je als student geld nodig? In de app zie je in een oogopslag waar je snel aan de slag kunt. Je kunt ook uitgebreid filteren op wat voor soort baantjes je wilt doen, hoe lang je wilt werken en hoe ver je wilt reizen.  Via de app solliciteer je direct en heb je inzicht in hoeveel je kunt verdienen, of al hebt verdiend.
Het door NoProtocol ontwikkelde design is clean en eigentijds en sluit daarmee goed aan bij de relatief jonge gebruikers van de YouBahn app. Alle data die de gebruiker in de app ziet, zoals vacatures, diensten, salaris, etc. komen uit het door YouBahn gebruikte systeem “E-matcher” en worden via een API, gebouwd door de leverancier van E-matcher “Synerg-E”, ontsloten.

 

De voordelen van Flutter voor developers

Een 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 heel prettig als developer. Je hoeft niet, zoals bij native apps, een pakketje te maken (compilen) om het resultaat van je werk op het scherm te zien (wat tijd kost).

Flutter projecten zijn ook minder gelaagd als bij 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. Dat voelt voor developers enerzijds als een stapje terug als je gewend bent aan Swift (taal voor iOS) en Kotlin (taal voor Android). Toch is er goed mee te werken. Zeker in vergelijking met React Native is Dart een veel “strengere” taal. Je wordt er dus snel op attent gemaakt als je foutjes maakt, wat weer tijd scheelt als het gaat om bugs te signaleren (debugging). Android developers hebben iets sneller de neiging om Flutter te gebruiken – het is natuurlijk 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 app ontwikkeling onmisbaar bij het creëren van Flutter apps.

 

De voordelen van Flutter voor business

Een heel groot voordeel is de snelheid waarmee je al een werkend geheel kunt laten zien, op zowel Android als iOS devices. Dat maakt Flutter sowieso ideaal voor het maken van prototypes en Minimal Viable Products (MVP’s). In het geval van de YouBahn app, hadden we 12 manweken nodig voor de volledige scope van de eerste versie van de app. Als we dit native hadden gedaan, was dit vermoedelijk rond de 16 manweken uitgekomen. Een besparing dus van 30%. En dan was dit ook nog eens onze eerste Flutter app. 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 je telefoon of tablet hier dan ook klaar voor zijn.

 

Wat kan beter?

Omdat Flutter een nieuw framework is, ondersteunen veel Software Development Kit’s (SDK’s, verzameling 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. Een ander aandachtspunt is het zogenaamde “stagemanagement”. Dit houdt bijvoorbeeld in dat de app onthoudt waar de gebruiker is gebleven na het sluiten van de app. Momenteel is dat nog wat diffuus met Flutter en kost daardoor (onevenredig) veel tijd. Daarnaast zien we ook dat bij het debuggen (automatisch opsporen van fouten in de programmeercode) Flutter soms verwijst naar de verkeerde plek en de echte fout ergens anders zit.

 

Kan elke app in Flutter worden gemaakt?

We zouden het zeker nog niet blind voor alle apps adviseren. Zeker als er veel integraties nodig zijn met 3rd party SDK’s en er veel gebruik wordt gemaakt van sensoren in de telefoon, zouden we er niet zomaar voor kiezen. Ook van belang is de gebruikersgroep van de app. Als die bijvoorbeeld uit wat oudere gebruikers bestaat die niet beschikken over de laatste  telefoon-modellen, is Flutter niet direct aan te bevelen.

 

Gaat Flutter de native ontwikkeltools van Apple en Google vervangen?

De komende jaren zeker niet. Al is zeker te verwachten 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. Ook de ontwikkel-roadmap van Flutter speelt hierbij een rol: Flutter gaat naast mobiele apps focussen op websites en MacOS applicaties. Toch blijven de native ontwikkeltools naar onze mening voorlopig dominant als het gaat om app development.

 

Conclusie

Flutter is een veelbelovend nieuw ontwikkel-framework waarmee snel goede apps voor zowel iOS als Android zijn te maken. Vanwege de ontwikkelsnelheid ook ideaal voor het ontwikkelen van prototypes en MVP’s. Of Flutter geschikt is, moet je per app bekijken en is afhankelijk van integratie met bestaande software, gebruik van hardware en de doelgroep. Op basis van onze ervaring met de YouBahn app, hebben wij besloten Flutter te omarmen als derde ontwikkelframework en wordt er in de Pinch fabriek alweer druk gesleuteld aan nieuwe Flutter apps.

Gerelateerd

23 januari, 2020

Networking in SwiftUI

I have been writing Swift for the last couple of years. Recently I started my...

Lees verder
23 januari, 2020

Flutter navigation — routing made easy

We all have to do it at some point: navigating from one screen to the...

Lees verder
Whatsapp