ExtraETF is een compleet mobiel platform voor analyse van ETF's en aandelen, dat beleggers krachtig gereedschap geeft voor portefeuillebeheer en marktonderzoek. Het project richtte zich op een functierijke, native aanvoelende mobiele ervaring, met de nadruk op realtime updates, soepele authenticatie en premiumfuncties via abonnement.

Onboarding

Onboarding

Nieuwspagina

Nieuwspagina

Themapagina

Themapagina

Artikel

Artikel

Aandelenpagina

Aandelenpagina

Aandelendetails

Aandelendetails

De uitdaging

Toen Isarvest GmbH ons benaderde om ExtraETF te bouwen, hadden ze een helder beeld: een mobiele applicatie die beleggen in ETF's toegankelijk maakt via krachtige analyses en realtime marktinzicht. De uitdaging was een verfijnde financiële app opleveren die complexe datavisualisatie, live koersupdates en premiumfuncties aankon, met uitstekende prestaties en gebruikservaring op zowel iOS als Android.

Onze aanpak

We kozen Flutter als fundament voor de mobiele ontwikkeling, zodat we één keer konden bouwen en tegelijk naar beide platforms konden uitleveren. Dat besluit bleek doorslaggevend om de strakke lanceerplanning te halen zonder in te leveren op codekwaliteit en functiegelijkheid. Flutters rijke widgetecosysteem en prestaties maakten het ideaal om complexe financiële grafieken te renderen en realtime datastromen af te handelen.

Voor live koersupdates bouwden we een -service in Go die live marktdata efficiënt naar zowel web- als mobiele clients uitzendt. Het gelijktijdigheidsmodel van Go en zijn lichte goroutines maakten het de perfecte keuze om duizenden gelijktijdige WebSocket-verbindingen te beheren met minimale overhead.

Technische winst

De Flutter-implementatie leverde meteen waarde op. De ontwikkelsnelheid ging fors omhoog doordat functies één keer werden gebouwd en overal terechtkwamen. Hot reload versnelde de iteraties, en de gedeelde codebase verkleinde het bugoppervlak door platformspecifieke afwijkingen weg te nemen.

De Go-WebSocket-service bleek in productie uitzonderlijk efficiënt. Doordat hij gelijktijdige verbindingen op schaal aankon, bereikten realtime koersupdates de clients met minimale vertraging, ook toen het gebruikersbestand groeide. Het lichte karakter van Go hield de serverkosten laag zonder in te leveren op prestaties.

Het integreren van native platformfuncties — Apple- en Google-:term{slug="oauth"}, pushmeldingen, — verliep soepel via het plug-inecosysteem van Flutter. Zo konden we platformeigen ervaringen leveren met behoud van de efficiëntie van cross-platform ontwikkelen.

Zakelijke impact

De technologiekeuzes vertaalden zich rechtstreeks naar zakelijke uitkomsten:

  • Zes maanden van kick-off tot beide appstores, met functiegelijkheid vanaf dag één — geen gefaseerde lancering met iOS eerst en geen platform dat wacht tot het andere is bijgetrokken.
  • naar schatting 40% lager dan bij twee parallelle native builds — het getal dat overblijft zodra hetzelfde werk niet langer twee keer wordt betaald.
  • Ongeveer 99% van de mobiele code wordt gedeeld tussen iOS en Android; het platformspecifieke deel is een paar honderd regels native lijmcode voor betalingen, OAuth en push.
  • Eén engineeringteam beheert de volledige mobiele stack, waardoor de onderhoudslast vlak bleef waar twee native teams elk hun eigen upgradecyclus zouden meedragen.

De app werd met succes gelanceerd in zowel de App Store als Google Play, en behaalde sterke gebruikersretentie dankzij de soepele prestaties en de realtime data. Het abonnementsmodel, aangedreven door een degelijke koppeling met in-app-aankopen, maakte duurzame omzetgroei mogelijk terwijl de technische architectuur moeiteloos meeschaalde met de groei van het gebruikersbestand.

Belangrijkste functies

Pushmeldingen

Realtime marktwaarschuwingen en portefeuille-updates houden gebruikers op de hoogte van forse koersbewegingen, marktnieuws en persoonlijke beleggingsinzichten. Het meldingssysteem is gebouwd op frequente updates zonder de batterij te belasten, en houdt rekening met de voorkeuren van de gebruiker.

Authenticatie en social login

Vlotte onboarding via koppelingen met Apple- en Google-OAuth geeft gebruikers veilige authenticatie met één tik. Dat verlaagt de drempel bij het aanmelden en borgt de accountbeveiliging via vertrouwde identiteitsaanbieders.

Deep linking

Universal links en app links maken naadloze navigatie mogelijk vanuit webcontent, e-mailcampagnes en sociale media rechtstreeks naar specifieke schermen in de app. Gebruikers kunnen specifieke ETF's, portefeuilles of marktanalyses rechtstreeks met anderen delen.

Interactieve grafieken

Geavanceerde grafiekmogelijkheden tonen marktdata met meerdere tijdvensters, technische indicatoren en vergelijkingsgereedschap. De grafieken zijn geoptimaliseerd voor bediening op mobiel, met pinch-to-zoom, gebaren en soepele prestaties ook bij grote datasets.

Themaondersteuning

Volledige ondersteuning voor een donker en licht thema past zich aan de voorkeuren van de gebruiker en de systeeminstellingen aan, zodat lezen bij elke lichtsituatie comfortabel blijft. Het designsysteem houdt de visuele samenhang en leesbaarheid in beide thema's overeind.

Abonnementsbeheer

Koppeling met in-app-aankopen voor premiumfuncties, met soepel abonnementsbeheer via de Apple App Store en de Google Play Store. Het systeem regelt proefperiodes, abonnementsniveaus en herstel op andere toestellen.

Veelgestelde vragen

ExtraETF is een mobiele app voor analyse van ETF's en aandelen, gebouwd voor Isarvest GmbH — realtime marktdata, interactieve grafieken, portefeuillebeheer en premiumfuncties via abonnement op iOS en Android. Wij bouwden de mobiele kant met Flutter en de realtime datalaag met een WebSocket-service in Go.
Eén team moest dezelfde functies binnen een strakke planning naar iOS en Android brengen, en een financiële grafiekenapp moet zijn eigen pixels bezitten — een echte grafiek is maatwerkrendering, geen standaard UI-widget. Flutter biedt allebei: één Dart-codebase en een canvas om rechtstreeks op te tekenen. In de uiteindelijke app wordt ongeveer 99% van de mobiele code tussen de platforms gedeeld, met slechts een paar honderd regels native lijmcode voor betalingen, OAuth en push.
Een WebSocket-service in Go zendt live koersen uit naar web- en mobiele clients, en gebruikt goroutines om duizenden gelijktijdige verbindingen vast te houden met weinig overhead. Updates worden stroomopwaarts samengevoegd tot een gestaag ritme van ruwweg één update per instrument per seconde — het tempo dat een mens die naar een koers kijkt werkelijk nodig heeft — wat de latency laag houdt en het CPU- en bandbreedtegebruik van de client gezond terwijl het gebruikersbestand groeit.
Zes maanden van kick-off tot lancering in zowel de App Store als Google Play, met functiegelijkheid tussen de platforms vanaf dag één. Vergeleken met twee parallelle native builds was de geschatte verkorting van de time to market ongeveer 40%, omdat businesslogica, grafieken en schermen één keer werden geschreven in plaats van twee keer.
Ja — ExtraETF is bewust grafiekzwaar, met meerdere tijdvensters, technische indicatoren en vergelijkingsgereedschap. Doordat Flutter elke pixel zelf tekent, draait de grafiekcode op beide platforms identiek, en door het dure geometriewerk buiten de tekenfase te houden blijft de interactie soepel binnen het framebudget van 16,6 ms, ook bij grote datasets.

ExtraETF is gebouwd met Flutter en Go als onderdeel van onze dienst Flutter-appontwikkeling, en het is de referentiebuild achter onze praktijk voor fintech-appontwikkeling.

Voor de technische verdieping — hoe de Go-WebSocket-service realtime marktdata naar duizenden clients uitwaaiert, en hoe de grafieken in Flutter op 60 fps blijven — lees Hoe we een realtime fintech-app bouwden met Flutter en Go.