Wat een Flutter-migratie werkelijk is

Weeg je Flutter nog af tegen React Native, lees dan eerst Flutter tegenover React Native in 2026 — deze pagina gaat ervan uit dat je al hebt gekozen en beantwoordt de uitvoeringsvraag: hoe, hoe lang, hoeveel, en hoe riskant.

Een migratie van React Native naar Flutter is een herbouw, geen overzetting. Flutter en React Native delen geen buildartefacten, geen componentbibliotheek en geen statelaag — elk scherm, elke navigatiestroom en elke native koppeling wordt vanaf nul in Dart opnieuw gebouwd. Wat de overstap overleeft is alles wat geen code is: je bedrijfsregels, je API-contracten, je datamodellen, en de ontwerpbesluiten die je team al nam. Die worden de specificatie waartegen de nieuwe app wordt gebouwd, en dat is waarom een migratie sneller en minder riskant is dan met een leeg vel beginnen — maar het blijft, eerlijk gezegd, een volledige herbouw van de client.

0
Gedeelde buildartefacten
React Native en Flutter compileren naar verschillende runtimes — elk scherm wordt in Dart herbouwd
Scherm voor scherm
Stapsgewijze oplevering
Flutter komt scherm voor scherm in je live app terecht, nooit als één omschakeling
Geen downtime
App blijft live
Je bestaande app blijft de hele migratie lang uitkomen en gebruikers bedienen
100%
Bedrijfslogica gaat mee
Als specificatie — je regels, API-contracten en datamodellen gaan mee, ook al doet de code dat niet

Wie zou moeten migreren — en wie niet

Flutter is meestal de juiste keuze voor een team dat React Native of native al in productie draait — maar niet altijd, en we zeggen dat liever vooraf dan je een herbouw te verkopen die je niet nodig hebt.

Tekenen dat het tijd is om te migreren

  • De upgradetredmolen van React Native (nieuwe architectuur, brekende releases, wisselende afhankelijkheden) kost elke cyclus echte engineeringtijd
  • Je loopt tegen een prestatieplafond aan — haperingen op complexe schermen, traag renderende lijsten, stotterende animaties — dat de brugarchitectuur niet kan oplossen
  • Native modules zijn een onderhoudslast geworden: geforkte pakketten, op versie vastgezette afhankelijkheden, code die de oorspronkelijke auteur achterliet
  • Werven is moeilijk of wisselvallig, en je wilt één team op één codebase in plaats van RN- en native specialisten
  • Je bouwt nieuw werk al in Flutter en wilt dat de rest van de app daarbij aansluit

Wanneer migreren NIET de juiste keuze is

  • Je app is stabiel, presteert goed, en houdt de roadmap niet tegen
  • Je team is tevreden en productief, en heeft geen zin in een herbouw van maanden
  • Je hebt zwaar geïnvesteerd in eigen native modules die prima werken en waarvoor geen Flutter-equivalent de moeite waard is
  • Het argument om te migreren is "Flutter ziet er mooi uit" en geen echt kosten-, prestatie- of onderhoudsprobleem

De eerlijke lezing: past geen van de bovenstaande tekenen bij je app, migreer dan niet. Een stabiele app met een tevreden team is de beste app om met rust te laten. Vertel ons waar je werkelijk vastzit en we zeggen ronduit of een migratie de moeite waard is — inclusief "nog niet."

De stapsgewijze aanpak: add-to-app

De reden om met ons te migreren in plaats van een herbouw vanaf nul te bestellen is het opleveringsmodel, niet de keuze van het framework. We bedden Flutter als module in je bestaande React Native- of native app in — een add-to-app-koppeling — en verplaatsen schermen één voor één achter een gedeelde router. Niets hieraan vraagt om een big-bang omschakeling, en niets hieraan haalt je app offline.

De add-to-app-stroom

Stap 1

Bestaande schil blijft

Je huidige RN- of native app blijft ongewijzigd in productie draaien als gastschil

Stap 2

Flutter-module ingebed

Een Flutter-engine wordt via add-to-app aan de schil toegevoegd en deelt navigatie en native diensten

Stap 3

Schermen migreren één voor één

Elk scherm komt in Flutter achter de router uit, afzonderlijk getest en uitgebracht

Stap 4

RN-schermen verdwijnen

Zodra een Flutter-scherm zich in productie bewijst, wordt het RN-equivalent verwijderd, niet gearchiveerd

Stap 5

Volledige omschakeling

Zodra elk scherm is verhuisd, wordt de gastschil zelf verwijderd en is de app 100% Flutter

Dit gaat niet zonder wrijving. Zolang de migratie loopt draai je twee toolchains en twee statelagen naast elkaar — en, tot het designsysteem volledig is overgezet, twee visuele talen in verschillende hoeken van dezelfde app. Dat is tijdelijk méér complexiteit, geen minder. We bakenen de migratiekaart vooraf af juist om dat venster zo kort mogelijk te houden, maar we doen niet alsof het verdwijnt.

Wat meegaat tegenover wat wordt herbouwd

Niet alles gaat weg. Dit is wat de overstap naar Flutter werkelijk overleeft, en wat vanaf nul wordt herbouwd.

Laag
Gaat mee
Herbouwd in Flutter
Bedrijfslogica en regels
Ja
API-contracten
Ja
Datamodellen
Ja
Designtokens en huisstijl
Ja
Testgevallen (als specificatie)
Ja
Interfaceschermen
Herbouwd
Navigatie
Herbouwd
Statebeheer
Herbouwd
Native koppelingen
Herbouwd
CI/CD-pijplijn
Herbouwd

Hoe we een migratie uitvoeren

1. Audit

We nemen je codebase door — schermen, navigatie, statebeheer, native modules, API-oppervlak en testdekking — en markeren wat eenvoudig te migreren is tegenover wat werkelijk lastig wordt. Elke landmijn — een geforkte native module, een ongedocumenteerde toestandsmachine, een backendcontract dat niemand opschreef — vinden we hier, en niet drie sprints in de herbouw.

2. Migratiekaart

De audit wordt een migratieplan per scherm: volgorde, afhankelijkheden tussen schermen, welke native modules een Flutter-equivalent nodig hebben, en een realistische volgorde die de app bij elke stap uitleverbaar houdt. Dit document is waartegen de rest van het project wordt afgebakend.

3. Stapsgewijze oplevering

We bedden Flutter in je bestaande schil in en beginnen schermen op prioriteit uit te brengen — meestal eerst iets met weinig risico om de pijplijn te bewijzen, daarna de schermen die er werkelijk toe doen. Je app blijft ondertussen gewoon uitkomen; de migratie loopt naast je normale roadmap, niet in plaats daarvan.

4. Omschakeling

Zodra elk scherm is verhuisd en de oude code is verwijderd, halen we de gastschil weg en brengen we een build uit die alleen Flutter is. Vanaf dat punt wordt de app onderhouden als elke andere Flutter-codebase — één team, één toolchain.

Houd je het werk liever in eigen huis? Onze engineers van teamuitbreiding kunnen bij je team aansluiten en de migratie onder jouw eigenaarschap uitvoeren in plaats van het onze.

Verklein het risico voordat je je verbindt

Je hoeft je niet aan een volledige migratie te verbinden om te ontdekken wat er bij komt kijken. Onze dienst Audit van AI-code voert de auditfase hierboven uit als losstaande opdracht met vaste scope: een volledige beoordeling van je bestaande codebase en een geschreven rapport dat je migratiekaart wordt — landmijnen, risico rond native modules, en een realistische volgorde — of je daarna met ons verdergaat of niet.

Begin hier als je twijfelt

Een audit is de manier met de laagste drempel om te ontdekken of een migratie zinnig is voor je app, wat hij werkelijk gaat kosten, en waar het echte risico zit — voordat iemand een regel Dart schrijft.

Planning en kosten

Een Flutter-migratie schaalt als een herbouw, want dat is het — de codebase waarmee je eindigt is een volledige Flutter-app, gebouwd op dezelfde scope als wanneer je vanaf nul was begonnen. Wat de stapsgewijze aanpak verandert is het risico, niet de omvang: oplevering over schermen spreiden rekt de kalender op vergeleken met een big-bang herbouw, maar het betekent dat je app nooit uitvalt, en dat je bij elke schermgrens kunt stoppen, pauzeren of herprioriteren.

We geven geen planning of prijs voor een migratie zonder de app te hebben gezien — de bandbreedte is anders te breed om nuttig te zijn. Voor een gevoel van schaal, zie hoe we inschatten hoe lang een Flutter-app duurt om te bouwen en wat de kosten van Flutter-ontwikkeling werkelijk bepaalt; een migratie van een app met vergelijkbare omvang ligt dicht bij die cijfers, plus de fase van audit en migratiekaart vooraf.

Veelgestelde vragen

Alles wat je moet weten over migreren van React Native of native naar Flutter

Ja — zo voeren we elke migratie uit. We bedden Flutter via een add-to-app-koppeling in je bestaande React Native-app in en verplaatsen schermen één voor één achter een gedeelde router. Je app blijft ondertussen live en uitleverbaar; er is geen moment waarop hij voor een herbouw offline gaat.
Ja, en dat zeggen we vooraf. React Native en Flutter delen geen buildartefacten, dus de interface, de navigatie, het statebeheer en de native koppelingen worden vanaf nul in Dart herbouwd. Wat meegaat zijn je bedrijfslogica, je API-contracten en je datamodellen — als specificaties waartegen de nieuwe code wordt gebouwd, niet als hergebruikte code.
Dat hangt af van de omvang van de app en van hoeveel native modules en eigen koppelingen erin zitten — er is geen vast getal dat voor alle apps geldt. Het ligt dicht bij een gelijkwaardige Flutter-app vanaf nul bouwen, plus de fase van audit en migratiekaart vooraf. De stapsgewijze aanpak rekt de kalender op vergeleken met een big-bang herbouw, in ruil voor een app die nooit offline gaat.
Een migratie wordt geprijsd als een herbouw van de clientapp, want dat is wat het is. We geven pas een exact bedrag na een audit van jouw specifieke app — het getal hangt sterk af van het aantal native modules, de complexiteit van de backendkoppelingen, en hoeveel eigen interface je hebt.
Ja. Dezelfde stapsgewijze add-to-app-aanpak geldt voor native apps in Swift of Kotlin net zo goed als voor React Native — de add-to-app-tooling van Flutter bedt zich op dezelfde manier in een bestaande native gastschil in. De audit en de migratiekaart zien er iets anders uit (geen RN-specifiek risico zoals de tredmolen van de nieuwe architectuur), maar het opleveringsmodel is identiek.
Elke module wordt afzonderlijk beoordeeld. Sommige hebben een onderhouden equivalent in Flutter of via Dart FFI en worden rechtstreeks vervangen. Andere hebben een dunne brug via een platform channel rond je bestaande native code nodig, waarmee die blijft werken zonder herbouw. De migratiekaart uit de audit vertelt je welke wat is, voordat er ook maar iets wordt gebouwd.
Niet altijd. Is je React Native-app stabiel, presteert hij goed, en is je team productief, dan is migreren een kostenpost zonder echt probleem erachter — dat zeggen we ronduit in plaats van je een herbouw te verkopen. Migreren is zinnig wanneer je de upgradetredmolen bevecht, tegen een prestatieplafond aanloopt dat niet weg te nemen is, een onderhoudslast aan native modules draagt, of moeite hebt om een consistent team te werven en te houden. Past geen van die dingen bij je app, blijf dan waar je bent.