Native app versus hybride app versus web-app versus platformoverschrijdend – Wat is de betere aanpak?

Native is altijd de beste aanpak! Maar: er is veel inspanning en budget nodig om applicaties te bouwen voor alle verschillende platformen (iOS, Android, Windows Phone, Web).
Er zijn dus verschillende benaderingen om mobiele apps te bouwen. Dit zijn:

  • Systeemeigen apps
  • Web-apps
  • Hybride apps
  • Cross-platform

Ik zal het in deze volgorde (van boven naar beneden) uitleggen, zodat het makkelijker is om de verschillen te begrijpen.
Hier een inzicht in al deze opties en hun voor- en nadelen:

Native apps – de beste ervaring

Native Apps geven je verreweg de beste ervaring.
Bijna alle succesvolle apps die er zijn, zijn gebaseerd op iOS of Android. Je zult niet zoveel goede apps vinden die in andere benaderingen zijn gebouwd. Tenminste als het gaat om B2C (Apps voor consumenten, zoals Facebook, WhatsApp, etc.).

Voordelen:

  • Super snel : Native software werkt supersnel. Zelfs games kunnen worden ontwikkeld en gebruikt (het beste voorbeeld is natuurlijk Temple Run.
  • Geoptimaliseerd voor het platform : iOS-apps zijn geoptimaliseerd voor iPhone en iPad en Android is geoptimaliseerd voor Android-apparaten (het klinkt triviaal, maar alleen als je nog nooit van de andere ontwikkelmethoden hebt gehoord, zoals Hybrid of Cross Platform)
  • Zeer goede interface naar de smartphone/tablet-functionaliteiten : Dingen zoals Gyroscoop, Accelerometer, Geheugen, Camera, Touch, etc. zijn gemakkelijk toegankelijk. Er is geen vertraging in het gebruik en alle functionaliteiten kunnen worden gebruikt.

nadelen:

  • Ontwikkelaars voor elk platform nodig : Als je een Android-app wilt hebben, dan heb je een Android-ontwikkelaar nodig. Als je een iOS-app wilt, dan heb je een aparte iOS-ontwikkelaar nodig. Als je een Windows-applicatie nodig hebt, heb je een Windows Phone Developer nodig. Heeft u een extra webapplicatie nodig, dan heeft u een webdeveloper nodig.
  • Kosten stijgen : Het is bijna niet mogelijk om code te delen tussen de applicaties (iOS, Android, Windows Phone, Web, etc.). Dit betekent dat u de code voor elke versie bijna helemaal opnieuw moet schrijven. Dit zal op zijn beurt ook betekenen dat de kosten zullen stijgen.
  • Tijd voor ontwikkeling neemt toe : Elk platform moet apart worden ontwikkeld en getest. Bijvoorbeeld: Android heeft veel verschillende mobiele apparaten (Samsung, Google, etc.) en ook verschillende schermformaten. Dit betekent dat er veel tijd nodig is om elk apparaat te testen en ervoor te zorgen dat het soepel werkt op die specifieke apparaten. Dit moet bij alle platforms worden herhaald.

Web Apps – voor eenvoudige Apps die niet veel prestaties nodig hebben

Dit is een heel eenvoudige benadering. Webtechnologieën zoals HTML5, CSS en JavaScript worden gebruikt om applicaties te bouwen die kunnen worden uitgevoerd in mobiele browsers (Chrome, Safari, enz.). Extra JavaScript-technologieën zoals Angular, Reach en Vue.js kunnen worden gebruikt om toegang te krijgen tot native functies ( Camera, Touch, etc.), waardoor het een zogenaamde Progressive Web App (PWA) is.

Voordelen:

  • Kan worden ontwikkeld door webontwikkelaars : Er zijn veel webontwikkelaars die HTML5, CSS en JavaScript kennen. Het zal dan ook geen uitdaging zijn om goede developers te vinden.
  • Eén keer ontwikkelen, overal gebruiken : Eenmaal ontwikkeld, kan het in alle mobiele browsers worden gebruikt. Het is niet nodig om aparte versies te bouwen.
  • Zeer lage kosten : Het is zeer kosteneffectief. Zelfs een enkele ontwikkelaar zou eraan kunnen werken.

nadelen:

  • Niet alle native-functies zijn toegankelijk : Web Apps hebben toegang tot Touch- of Camera-functies, maar het zou een grotere uitdaging zijn om dingen als de gyroscoop op te nemen. Hier zijn Web Apps niet echt geschikt voor.
  • Prestaties zijn laag : Als CPU-kracht van de smartphone of het mobiele apparaat nodig is, is de webbenadering niet de beste. Vooral games of krachtige apps zijn beter gebouwd met andere benaderingen.

Hybride apps – Web en Native gaan trouwen

Als een Native App en een Web App zouden trouwen, dan zou hun kind een Hybride app :). Ook in deze aanpak worden HTML5, CSS en JavaScript gebruikt voor het bouwen van de app. Het verschil is dat er meestal een framework is zoals Cordova of het Ionic Framework. Dit Framework zal de webcodering veranderen in respectievelijke apps (iOS, Android, enz.). Deze Apps zullen eruitzien als Apps, maar het is eigenlijk een browser in een app – ook wel “Webview” genoemd.
Dus ook al is het gebouwd met webtechnologieën, het kan worden veranderd in apps met het framework en kunnen worden ingediend bij de verschillende app stores.

Voordelen:

  • Kan worden gebouwd met webtechnologieën: Vergelijkbaar met de Web App-aanpak. Veel ontwikkelaars kennen deze technologieën al.
  • Updates kunnen eenvoudig worden geïmplementeerd: Er is slechts een enkele codebasis, dus het bijwerken van de code is voldoende. Vervolgens kan het naar alle apps-versies worden gepusht.
  • Gebruik van webbibliotheken mogelijk: Ember, AngularJS, React, PaperJS kunnen worden gebruikt.

nadelen:

  • Niet zo snel als native: Klanten en eindgebruikers verwachten doorgaans razendsnelle applicaties. Wanneer ze Hybrid Apps gebruiken met te hoge verwachtingen, zullen ze niet zo blij zijn, omdat de prestaties nog steeds niet vergelijkbaar zijn met native.
  • Sommige apparaatfuncties worden mogelijk niet ondersteund: Verschillende frameworks (Cordova, Ionic, etc.) hebben verschillende specificaties. Sommige ondersteunen één set functionaliteiten (Touch, Camera, enz.), terwijl andere andere functionaliteiten ondersteunen (Gyroscoop, Geheugen, enz.). Volledige dekking door één raamwerk voor alle functionaliteiten wordt dus niet gegeven.

Cross-platform-app – één keer schrijven, overal gebruiken met hoge prestaties

Dit is de benadering die het dichtst bij Native komt. Het is eigenlijk vergelijkbaar met hybride apps. Maar meestal worden Cross Platform Apps niet geschreven met HTML5, maar met andere technologieën zoals C# en frameworks zoals Xamarin of React Native.

Voordelen:

  • Bijna net zo snel als Native: Veel ontwikkelaars die Cross Platform-ontwikkeling gebruiken en de providers van Xamarin en co. stellen dat Cross Platform net zo snel is als Native. Of het echt waar is, kan alleen door de tijd worden aangetoond. (ik geloof dit persoonlijk niet 100%)
  • Hergebruik van code : Bijna 80% van de code kan worden gebruikt voor het volgende platform, bijvoorbeeld Android naar iOS. Dit vermindert de ontwikkelinspanning.
  • Eén code: De volledige code kan worden geschreven in een intermediaire taal zoals C# (Xamarin). Dit is vooral interessant voor bedrijven op bedrijfsniveau die al .NET-technologieën gebruiken en werknemers hebben die van die technologie afweten. Het zal voor hen gemakkelijker zijn om deze mobiele ontwikkelingsmethode te leren dan om iOS- of Android-ontwikkeling te leren.
  • Eén ontwikkelaar: In plaats van een ontwikkelaar voor elk platform (iOS, Android, Windows Phone), is er maar één ontwikkelaar nodig, die alles zou kunnen doen.

nadelen:

  • Ervaren mensen nodig: Er zijn mensen nodig die goed thuis zijn in C# en het specifieke framework (Xamarin). Als dat geen gegeven is, dan is het moeilijk om goed presterende apps te bouwen.
  • Ontwikkelaars zijn zeldzaam: Het is niet echt gemakkelijk om bijvoorbeeld Xamarin-ontwikkelaars te vinden, ook omdat het een relatief nieuwe technologie is. Je kunt Xamarin/ Cross Platform-ontwikkelaars vinden, maar die zijn misschien onervaren en hebben meer tijd nodig om goede applicaties te ontwikkelen.
  • Soms is ervaring in moedertalen nodig : Soms ontstaat de behoefte om ook iOS (Swift, Objective-C), Android (Java) te kennen. Zeker als er een aantal specifieke functionaliteiten geïmplementeerd moeten worden. Maar dat is in dat geval eigenlijk heel zwaar. Omdat het moeilijk is om al deze technologieën te kennen.
    Ik hoop dat je begrijpt waarom ik ben afgedwaald naar Web App en Hybrid. Alleen dan is het mogelijk om het verschil tussen Native en Cross Platform te begrijpen.

Conclusie – Wat is beter?

De vraag is niet “Wat is beter?”, de vraag is “Wat is uw vereiste”.
Hier enkele mogelijkheden:

  1. Je bent een middelgrote bedrijven die al .NET-technologieën gebruikt in de verschillende afdelingen (Sales, Marketing, HR, enz.) – In dit geval is Cross Platform de betere keuze, omdat je dan al C# Developers in het team hebt. Op deze manier kunt u ook uw benodigde budget verlagen en zo uw kosten verlagen.
  2. Je bent een B2C-startup die een chat-app wil aanbieden provide – In dit geval is Native de enige manier om te gaan. U wilt uw gebruikers de beste gebruikerservaring (UX) bieden, die meestal worden gebruikt om ervaringen soepel te laten verlopen (bijv. WhatsApp, Snapchat, Instagram, enz.). Hetzelfde zou gelden voor games of andere apps voor eindgebruikers.
  3. Yo je hoeft alleen wat foto’s, video’s te laten zien en tekst en aanraakfunctionaliteit nodig – In dit geval zou een Web App een goede aanpak zijn.
  4. Yo je hebt een aantal basisvereisten, zoals het tonen van afbeeldingen, video’s, tekst, maar je hebt meer native-functionaliteiten nodig, terwijl het tegelijkertijd echt het gevoel van een app moet hebben – In dit geval zou Hybrid een goede benadering zijn. De uitvoeringstijd is misschien iets beter in vergelijking met de webbenadering.

Interessante artikelen:
Vergelijking van platformonafhankelijke versus native mobiele app
Bekijk de voor- en nadelen van native, platformonafhankelijke en hybride apps

Afbeeldingsbron: Flickr.com/Dietrich


De auteur: Reema Oamkumar is betrokken als thought leader bij www.Software-Developer-India.com, een onderdeel van de YUHIRO Group. YUHIRO is een Duits-Indiase onderneming die programmeurs levert aan IT-bedrijven, agentschappen en IT-afdelingen.

Geef een reactie

Deze site gebruikt Akismet om spam te verminderen. Bekijk hoe je reactie-gegevens worden verwerkt.