Definitie: Flutter is een open source framework van Google waarmee ontwikkelaars met één codebasis apps bouwen voor iOS, Android, het web en desktop. Flutter-apps worden geschreven in de programmeertaal Dart en tekenen hun eigen interface, waardoor ze er op elk platform hetzelfde uitzien.

In het kort

  • Google bracht de eerste stabiele versie van Flutter uit in december 2018.
  • Flutter is een cross-platform framework: één codebasis voor meerdere platforms in plaats van een aparte app per platform.
  • Flutter-apps worden gecompileerd naar machinecode, wat zorgt voor goede prestaties.
  • Het belangrijkste alternatief is React Native van Meta, dat met JavaScript werkt.

Wat is Flutter?

Wie een app wil voor zowel iPhone als Android, kan twee native apps laten bouwen: één in Swift voor iOS en één in Kotlin voor Android. Dat betekent twee codebases, vaak twee ontwikkelaars en dubbel onderhoud. Flutter biedt een alternatief. Je schrijft de app één keer, en Flutter maakt er een app van voor beide platforms, en desgewenst ook voor het web en desktop.

Flutter onderscheidt zich doordat het de interface zelf tekent. Waar andere frameworks de standaardknoppen en menu’s van het besturingssysteem gebruiken, heeft Flutter een eigen render-engine. Daardoor ziet een Flutter-app er op elk toestel precies hetzelfde uit, en heb je veel vrijheid in het ontwerp.

Hoe werkt Flutter?

  • Dart. Flutter-apps worden geschreven in Dart, een programmeertaal die ook door Google is ontwikkeld.
  • Widgets. Alles in een Flutter-app is een widget: een knop, een tekst, een lijst, maar ook de indeling van een scherm. Widgets worden in elkaar genest tot een complete interface.
  • Eigen rendering. Flutter tekent elke pixel zelf, waardoor animaties soepel zijn en het ontwerp op elk platform gelijk blijft.
  • Hot reload. Ontwikkelaars zien wijzigingen vrijwel direct in de draaiende app, zonder die opnieuw te hoeven starten, wat het ontwikkelen en testen van kleine aanpassingen sterk versnelt.
  • Compilatie. Voor iOS en Android wordt de app gecompileerd naar machinecode, wat zorgt voor goede prestaties.

Op welke platforms werkt Flutter?

  • iOS en Android, de belangrijkste toepassing van Flutter.
  • Web, waarbij de app in de browser draait. Geschikt voor interactieve toepassingen, minder voor content- of zoekmachinegerichte websites.
  • Desktop, met apps voor Windows, macOS en Linux.
  • Ingebedde systemen, zoals schermen in apparaten of voertuigen.

Die brede ondersteuning maakt Flutter interessant als je dezelfde toepassing op meerdere soorten apparaten wilt aanbieden.

Voordelen van Flutter

  • Eén codebasis voor iOS en Android, en eventueel web en desktop.
  • Lagere ontwikkel- en onderhoudskosten dan twee aparte native apps.
  • Consistente vormgeving op alle toestellen.
  • Goede prestaties, dichter bij native dan veel andere cross-platform oplossingen.
  • Snelle ontwikkeling dankzij hot reload.
  • Grote community en veel kant-en-klare pakketten.

Nadelen van Flutter

  • Dart is minder bekend dan JavaScript, waardoor er minder ontwikkelaars zijn dan voor sommige alternatieven.
  • App-grootte. Flutter-apps zijn doorgaans iets groter dan vergelijkbare native apps.
  • Niet altijd de standaard look. Omdat Flutter zelf tekent, voelt een app soms net anders aan dan de standaardapps van het toestel, tenzij je daar bewust op ontwerpt.
  • Nieuwe platformfuncties zijn soms later beschikbaar dan in native ontwikkeling.
  • Web. Flutter werkt op het web, maar voor gewone websites en webapplicaties is het minder geschikt dan webtechnieken.

Flutter vs React Native

Flutter React Native
Van Google Meta
Taal Dart JavaScript of TypeScript
Interface Eigen rendering Standaard componenten van het platform
Prestaties Hoog Hoog
Vormgeving Overal gelijk Volgt meer het platform
Kennis in de markt Groeiend Groot, dankzij JavaScript

Beide zijn volwassen keuzes voor cross-platform apps. React Native ligt voor de hand als het team al met React en JavaScript werkt. Flutter is sterk als een consistente, eigen vormgeving en soepele animaties belangrijk zijn.

Wat kost een Flutter-app?

De kosten hangen af van het aantal schermen, functies, koppelingen en de backend achter de app. Het voordeel van Flutter zit vooral in het feit dat je één codebasis bouwt en onderhoudt in plaats van twee. Daardoor zijn de kosten doorgaans lager dan bij twee aparte native apps met dezelfde functies. Vergeet daarbij niet de kosten buiten de app zelf: een backend voor gegevens en gebruikers, het indienen in de app stores, de jaarlijkse bijdrage voor het Apple Developer Program en onderhoud bij nieuwe versies van iOS en Android.

Flutter en de backend

Een Flutter-app is zelden alleen een app. Gegevens, gebruikersaccounts en rechten staan vrijwel altijd in een backend: een server of dienst waarmee de app communiceert via een API. Dat kan een maatwerkbackend zijn, bijvoorbeeld in Laravel, of een kant-en-klare dienst zoals Firebase of Supabase. Bij het plannen van een app is de backend minstens zo belangrijk als de schermen, omdat daar de logica, de beveiliging en de koppelingen met andere systemen zitten.

Wanneer kies je voor Flutter?

  • Je wilt een app in de App Store en Google Play, zonder twee aparte apps te bouwen.
  • Vormgeving en soepele bediening zijn belangrijk.
  • Je budget is beperkt en je wilt onderhoud eenvoudig houden.
  • De app gebruikt toestelfuncties zoals camera, locatie of pushmeldingen.
  • Je wilt later misschien ook een desktop- of webversie, op basis van dezelfde code.

Een native app blijft beter als je diep op platformspecifieke functies leunt of maximale prestaties nodig hebt. Een webapplicatie of PWA is vaak genoeg als de app niet in de stores hoeft te staan.

Wat betekent dit voor jouw project?

Bij een nieuw idee vraag ik eerst wie het gaat gebruiken en welke taak die persoon als eerste moet kunnen afronden. Daaruit volgt of een app in de stores nodig is, of dat een webapplicatie die prettig werkt op de telefoon volstaat. Is een app nodig, dan is een cross-platform framework als Flutter een logische optie om met één codebasis beide platforms te bedienen.

Twijfel je welke soort app past bij jouw idee? Stuur me voor wie het is, waar die persoon werkt en wat de eerste versie moet oplossen. Dan bepalen we samen de logische eerste stap.

Veelgestelde vragen over Flutter

Wat is Flutter?

Flutter is een open source framework van Google waarmee ontwikkelaars met één codebasis apps bouwen voor iOS, Android, het web en desktop. Apps worden geschreven in de programmeertaal Dart.

Wat is het verschil tussen Flutter en React Native?

Flutter is van Google, gebruikt de taal Dart en tekent de interface zelf. React Native is van Meta, gebruikt JavaScript en werkt met de standaard componenten van het platform. Beide maken apps voor iOS en Android met één codebasis.

Is Flutter geschikt voor grote apps?

Ja. Flutter wordt gebruikt voor apps van grote bedrijven en is geschikt voor uitgebreide toepassingen, mits de opbouw van de code goed wordt opgezet en onderhouden.

Verwante termen

Native app · Progressive Web App (PWA) · Web app · Webapplicatie · Maatwerk software

← Terug naar de kennisbank