Hybride applicatieontwikkeling lijkt een binnenkopper: één codebase die applicaties produceert voor zowel iOS als Android. Half zoveel code, half zoveel technische bagage, half zoveel kosten, een beslissing waarvoor elke bedrijfsleider meteen zou aftekenen.
Toch is de keuze minder voor de hand liggend dan op het eerste zicht zou lijken. Daarom praatten we met Mike Seghers, Technical Architect, Coach en Technology Advisor. Die keuze, zo blijkt, steunt op een aantal vragen, en de eerste en belangrijkste vraag was alvast verrassend!
Heb je eigenlijk wel een app nodig?
Even back to basics: Je wil als bedrijf een app bouwen omdat je een zekere dienst wil aanbieden aan mensen met een smartphone. Grote moeilijkheid: er zijn twee grote spelers in de markt, Apple/iOS en Google/Android, en je wil ze vaak liefst beide bereiken. Vaak begint dan al de discussie rond Native vs Hybrid apps, maar dan vergeet men een belangrijk cross-platform alternatief: de mobiele website!
Een moderne website wordt immers automatisch op alle platformen ondersteund en is dus ook toegankelijk via desktop. Een bijzonder kosten efficiënte oplossing dus, maar gebruikers missen dan wel de optie om rechtstreeks vanaf het homescreen naar jouw app te navigeren.
Een mobiele website kan daarom ook als Progressive Web App (PWA) worden ontworpen, waarbij gebruikers de optie kunnenkrijgen om je website als app toe te voegen op hun thuisscherm. Een Progressive Web App ziet er dan uit als elke andere app, maar opent in de achtergrond een browservenster waarin de app draait.
Een mobiele website of PWA brengt dus heel wat voordelen met zich mee, waarom zou je dan toch voor een app kiezen? Grofweg zijn er twee belangrijke redenen:
- Je wil gebruik maken van de hardware features van een smartphone in je app. Denk hierbij aan GPS, camera, Bluetooth, etc.
- Je wil dat je applicatie de look en feel van het platform volgt en daarvoor de standaard componenten die de platformen aanbieden gebruiken. Kortweg: je wil dicht bij de platformen aanleunen
Native vs Hybrid
Als de keuze voor een app gemaakt wordt is de volgende vraag: Native of Hybrid? We hebben de duidelijke voordelen van Hybrid al kort aangehaald in de intro, dus de vraag wordt eerder: Wanneer kies je dan toch voor een Native app?
Er zijn drie belangrijke redenen:
- Je bedrijfsapplicatie moet maar één platform ondersteunen. Indien al je technici rondlopen met Android tablets hoef je natuurlijk geen iOS versie te voorzien
- De business case van je app draait rond state-of-the-art functionaliteiten van een smartphone. Denk hierbij bijvoorbeeld aan Machine Learning, NFC betalingen of Augmented Reality.
- Je hebt de technologische expertise in huis om voor beide platformen te ontwikkelen.
Vooral het tweede punt vereist wat nuance, want bovenstaande features zijn intussen ook vaak beschikbaar als hybrid componenten. Je kiest dus vooral voor Native als je de eerste wil zijn die gebruik maakt van nieuwe features.
In alle andere gevallen kies je beter voor Hybrid development om dubbele ontwikkelkosten zoveel mogelijk te vermijden.
Frameworks
De laatste vraag die we vervolgens moeten beantwoorden is: Welk hybrid app development framework? De keuze is ruim, maar wij zien grofweg drie spelers die het vaakst gebruikt worden: Flutter, React Native & Xamarin.
De verschillen tussen deze platformen zijn soms heel subtiel, maar belangrijk is wel dat ieder framework wordt gebouwd bovenop specifieke technologieën met een bepaalde aanpak. Xamarin apps worden gebouwd in C# en maken achterliggend nog steeds gebruikt van de frameworks die Apple en Google voorzien. React Native is gebaseerd op React (een javascript web framework) met een brug/vertaalslag naar de onderliggende Android en iOS systemen. Flutter maakt dan weer gebruik van een door Google geheel eigen gebouwde taal (Dart) en voorziet zelf volledig in het opbouwen van de user interface.
Weten wat er achter een technologie schuilgaat helpt bij het maken van de juiste keuze. Als je organisatie al vertrouwd is met een bepaalde technologie, is het evidenter om corresponderende frameworks te kiezen om zo bijkomende technische bagage te vermijden.
Conclusie
Er zijn dus heel wat belangrijke vragen te beantwoorden, maar eerlijk: eigenlijk is deze discussie secundair. Je wil natuurlijk dubbele ontwikkelingskosten en bijkomende technische bagage zoveel mogelijk vermijden, maar de app framework keuze zal het succes van je app niet bepalen.
De echte succesfactor schuilt uiteindelijk in de bruikbaarheid van je app. En bruikbaarheid hangt niet af van de technologiekeuze, maar van goede communicatie, stakeholder mapping, interviews met de eindgebruikers, UX/UI expertise, enzovoort.