Vandaag zit ik in de podcast-studio met Roy Niemantsverdriet en Bas van Kuijck (rechts). Zij zijn managing director en technische lead van het Bredase ontwikkelbureau Unlock Agency. Als onderdeel van de digitale Handpicked Agencies zorgen zij met hun creatieve collega-bedrijven voor de volledige ontwikkeling en lancering van apps. 

Maar ik heb ze voornamelijk uitgenodigd om te praten over cross-platform app-ontwikkeling. Want ondanks dat deze ontwikkelmethode de afgelopen jaren enorm in populariteit is gestegen, geven zij aan dat deze methode (nog) niet altijd de beste oplossing is voor elke app. Wanneer moet je het wel of niet gebruiken, en hoe? De stelling is dan ook: cross-platform app-ontwikkeling is op zichzelf niet dé oplossing.

De ins en outs van cross-platform app-ontwikkeling

First things first: wat is cross-platform app-ontwikkeling? Naast dat het een hele mond vol is, betekent het kortgezegde dat je in één ontwikkelingstraject een app bouwt voor meerdere platforms tegelijk. 

Stel, je wil jouw app op de meest voorkomende platforms uitbrengen, dus iOS en Android, dan zou je dus eigenlijk twee apps moeten bouwen. Native app-ontwikkeling noemen ze dat. Je werkt met een aparte programmeertaal per platform. Dat kost nogal wat! 

Vandaar dat pioniers zijn begonnen met het ontwikkelen van software en codetalen waarmee je voor beide platformen tegelijk kan ontwikkelen. Denk bijvoorbeeld aan React Native en Flutter. Dit kan een financieel voordeel opleveren, mits de oplossing gepast is voor jouw app-idee.

Welke impact heeft deze ontwikkelmethode voor bedrijven?

Afhankelijk van de doelstellingen van jouw bedrijf en de functie van jouw app, kun je kijken of native of cross-platform het beste werkt voor jouw app. Als we het puur hebben over de ‘beste’ app, zal native altijd de beste keuze zijn. Je blijft dan zo dicht mogelijk bij de beoogde functionaliteiten. Uiteraard kost dat dan meer omdat je meer tijd kwijt bent aan ontwikkeling. 

Echter is cross-platform steeds populairder omdat hieruit steeds meer mooie, gebruiksvriendelijke apps komen die zeer stabiel zijn. Dit was in de beginjaren van cross-platformontwikkeling nog niet het geval, dus was de keuze hiervoor eenvoudiger gemaakt. Destijds waren platformen als Cordova en Xamarin als optie om hybride apps te maken. 

Met nieuwe ontwikkelingen op gebied van cross-platform is deze technologie alweer ingehaald door Flutter en React Native. Dat zie je ook terug in de wisseling aan marktaandelen van deze bedrijven.

Een verouderde techniek kan zorgen voor een mislukte app.

Om de verschillen duidelijker te maken: Cordova en Xamarin zijn eigenlijk gebouwd met webtechnologie. Die apps worden dus eigenlijk gebouwd met programmeertalen die niet puur voor apps zijn ontwikkeld. Zo merkte je met apps van deze technologie dat deze niet zo prettig werken als andere apps: het voelt een beetje alsof je echt een website in een app hebt gezet. De kwaliteitsslag die door partijen zoals Flutter is gemaakt, zorgt ervoor dat ontwikkelaars én hun klanten overstappen op cross-platform ontwikkeling. Denk aan supermarktketens of banken. 

Het zou zomaar kunnen dat in de toekomst de standaard cross-platform wordt. En dat alleen specifieke technische vraagstukken erom vragen om nog native te ontwikkelen.


Waarom geen web cross-platform meer?

De kosten van web cross-platform ontwikkeling zoals Xamarin zijn nog altijd het laagst. Dat kan een reden zijn om hier alsnog voor te kiezen. Uiteraard is de kwaliteit van de ontwikkelaars die deze technologie omarmen niet definitief slechter dan bedrijven die native of nieuwe cross-platform gebruiken. 

Echter pikt de consument web cross-platform steeds minder. Gebruikers zijn nu eenmaal een bepaalde kwaliteit apps gewend. Wanneer hieraan niet meer aan kan worden voldoen, bijvoorbeeld door web applicaties die in appvorm zijn omgezet, zal de gebruiker dit in downloads en gebruik laten zien. Zo zien we dat apps die op deze manier nu ontwikkeld worden steeds vaker floppen. En dan komt een project uiteindelijk toch op hoge kosten: zelfs als er €200.000 op wordt ingezet, kan een verouderde techniek alsnog zorgen voor een mislukte app.

De haakjes achter cross-platform

Het succes van Flutter en React Native is dat ze als gespecialiseerde programmeertalen veel dichter bij de visie van Apple en Google liggen. Zo is Flutter van Google zelf, en dat wil wel wat zeggen. De nieuwigheid is er bij deze ontwikkeltalen inmiddels wel vanaf. Maar, er is wel bij elke update aardig wat inzet vanuit de ontwikkelaar nodig is om de app te onderhouden. 

Echter zien we door de groei van de community achter deze talen dat de tijdrovende elementen aan deze ontwikkeltechniek steeds beter worden gecompenseerd. Aangezien je afhankelijk van jouw app-idee sowieso met onderhoudskosten te maken hebt, is dus de vraag of het wijsheid is om voor native of cross-platform te gaan. Dat blijft regelmatig rond 10% van de ontwikkelkosten, zowel bij native als cross-platform. Echter moet dat bij native voor twee apps (als je meer dan een platform bedient) en bij cross-platform maar één keer. Dus daarin scheelt het toch al in de kosten.

Daarnaast krijg je met nieuwe talen het volgende probleem: er zijn koppelingen met native code nodig. Die wordt in zogenaamde "Library’s" in grote hoeveelheden door allerlei ontwikkelaars aangeboden. Echt zijn de Library’s die goed worden onderhouden op een hand te tellen. Dus op de lange termijn kan het nog extra tijd en inzet vereisen om de app te onderhouden. In het ergste geval moet er een alternatief worden onderzocht om de beoogde functionaliteit te behouden.


Wanneer kies je voor cross-platform?

Deze vraag kun je nooit helemaal van tevoren beantwoorden. Je kijkt altijd eerst samen met een app-ontwikkelaar, zoals Unlock Agency, naar de case. Je gaat dan de diepte in en komen tot een lijst met functionaliteiten. Dan brengen we bij Unlock een advies uit waarbij we native en cross-platform tegenover elkaar zetten, mits we ervan overtuigd zijn dat cross-platform een reële mogelijkheid is. Mocht je sneller op de markt willen, is het bijvoorbeeld een extra reden om dan voor cross-platform te gaan. 

Nu gebeurt het ook dat klanten direct aanvraag doen voor een Flutter app. Waar je vroeger vanaf moment 1 betrokken werd bij de ontwikkeling, zit er aan klantzijde steeds meer kennis over apps. Vandaar dat dit soort vragen ook binnenkomen. Uiteraard dienen we zelf ook na te gaan of het behoefteonderzoek van de klant daarbij is uitgevoerd. Die geeft namelijk weer of er überhaupt een app nodig is en vervolgens of de voorkennis van de klant hierop aansluit. Met een volledige briefing kunnen we die vraag dan ook het beste beantwoorden. Dat helpt jou als klant ook, want daarmee kun je beter vergelijken tussen ontwikkelaars.

Wanneer kies je voor native?

Voor sommige app-ideeën is native zo goed als altijd de beste optie. Denk bijvoorbeeld aan een shopping app. Dan is de gebruikservaring zó belangrijk dat je eigenlijk niet wegkomt met cross-platform ontwikkeling. Het verdienmodel van die app laat niet toe dat gebruikers afhaken op kleine verschillen in kwaliteit van het gebruik. Je ziet het verschil wellicht niet, maar je voelt het gewoon. Of dit in de toekomst verandert is nog de vraag. En natuurlijk heeft cross-platform weinig zin als je maar op een enkel platform wil lanceren. 

Praten met hardware is bij uitstek een vraagstuk waarbij je native moet ontwikkelen.

Ook als je je app wil verbinden aan andere hardware, raden we cross-platform af. Een voorbeeld hiervan is een app voor campers. In deze campers is een systeem gebouwd waarbij water hergebruikt kan worden met behulp van chemische additieven. Lang verhaal kort: met de app kun je op afstand monitoren wat de status is van de tanks en hoeveel additieven er nog zijn. Het praten met deze hardware is bij uitstek een vraagstuk waarbij je native moet ontwikkelen. De verbinding tussen app en hardware zijn van levensbelang voor de app en dus niet het risico van cross-platform waard.


Waarom starten developers met cross-platform ontwikkeling?

Bij Unlock zijn we ooit begonnen met native ontwikkeling. Pas in recentere jaren konden we niet altijd meer verdedigen dat native altijd de beste oplossing is: zo goed zijn cross-platform talen geworden. We starten nu nog steeds vanuit de native technologie, maar kijken altijd of cross-platform een optie is. Het gaat erom of we de beoogde kwaliteit hiermee kunnen bereiken; dat is de belangrijkste voorwaarde. Zo zijn we ervan overtuigd dat we dezelfde SLA (Service Level Agreement) moeten kunnen bieden, onafhankelijk van de ontwikkeltechniek. Zo’n garantie kunnen we eenvoudig weg niet geven voor web cross-platform.

De eindconclusie

De techniek die je kiest is afhankelijk van de wensen en benodigdheden van jouw app. Een heldere doelstelling en scope, welke je zelf kan onderzoeken of samen met developers vaststelt. De vraag die je dan moet stellen aan jouw ontwikkelaar: wanneer kies je voor native of cross-platform, en hoe komen we tot de technische keuze op basis van jouw case. Denk daarbij ook aan doorontwikkeling. Wil je uiteindelijk verder doorontwikkeling, moet de keuze voor cross-platform óf native jou niet op termijn in de weg gaan zitten.

Laatste tip

Ga veel koppen koffie drinken. Natuurlijk niet in je eentje, maar samen met ontwikkelaars zoals Unlock. Roy staat in ieder geval altijd te trappelen voor een bakkie! Je bereikt hem via roy@unlockagency.nl

Vergelijk technieken zoals cross-platform app-ontwikkeling

Wil je een duidelijk overzicht van de verschillende technieken en hun voor- en nadelen? Download hieronder dan de Ontwikkelingsvergelijker en ontdek welke techniek het beste past bij jouw idee. 

Vul je emailadres in en ontvang de vergelijker meteen als PDF in je mailbox:

Ontwikkelaar om te vergelijken
Hoe wordt je app gemaakt?
Ontwikkelingsvergelijker als PDF
Kom erachter hoe je kosten bespaart én het meeste uit je idee haalt

Met de Ontwikkelingsvergelijker krijg je:

✔️ Welke technieken er zijn om apps te ontwikkelen

✔️ Zie in een overzicht de voor- en nadelen & kosten en baten

✔️ Kom erachter welke techniek past bij jouw app


Toegang tot de Ontwikkelingsvergelijker normaal €7 in de shop, nu GRATIS toegang:

-David van AppSpecialisten

Fase van jouw app
Markten
Geschreven door
David van der Loo