Mobile App developer, kies je voor native, React Native, Xamarin of Cordova?

Ben je als Mobile App developer Nog steeds native apps aan het ontwikkelen? Want tegenwoordig zijn er veel mogelijkheden om direct voor iOS en Android een mobile app te ontwikkelen. Zo is React Native erg populair en Xamarin heeft ook een sterke positie als mobile app development platform. Welk mobile app ontwikkelplatform is voor jouw mobile app de juiste keuze?

Native & hybrid mobile apps

Voor dat we gaan concluderen over de verschillende mobile app ontwikkelplatformen moeten we eerst wat meer vertellen over het verschil tussen mobile native en hybride apps. In essentie zijn hybride apps, websites ingesloten in een mobiele app. De website wordt in de app getoond via een webview. Een webview is vergelijkbaar met de browser op de smartphone. Een hybride app wordt gemaakt met behulp van mobile webtechnieken zoals HTML5, CSS en JavaScript. Onafhankelijk van waar de mobile app draait – iOS, Android, Windows Phone – wordt dezelfde code uitgevoerd. Met behulp van tools als Cordova, PhoneGap of Ionic is het mogelijk native functies als de camera, GPS, acceleratiemeter en meer te gebruiken. Native apps daarentegen worden specifiek voor het platform ontwikkeld waarvoor ze bedoeld zijn. Zo worden native apps voor iOS ontwikkeld in Swift of Objective-C en voor Android in de programmeertaal Java. Code van iOS kan niet hergebruikt worden voor Android en vice versa. Het voordeel is wel dat alle functies van het platform direct beschikbaar zijn zonder enige beperking voor de ontwikkelaar.

Mobile App Development: welk ontwikkelplatform of tool zal Kiyani toepassen?

Naast native ontwikkelen zijn er de afgelopen jaren veel crossplatform ontwikkeltools ontstaan, waarmee direct apps ontwikkeld kunnen worden voor meerdere platformen zoals Android en iOS. De voordelen zijn helder: niet twee keer ontwikkelen scheelt tijd, ontwikkelcapaciteit en dus geld. In deze vergelijking onderscheiden we 4 categorieën app ontwikkelplatformen naast native mobile app development:

  1. Cordova based (o.a. PhoneGap, Ionic)
  2. React Native
  3. Xamarin
  4. Low code / rapid application development platforms

Welke mobile app development optie is het best?

Persoonlijk als mobile app developer heb ik verschillende alternatieven  om mobile app te bouwen, elk alternatief voor native app development heeft zijn eigen voordelen met daarbij een eigen filosofie. Er is niet één ontwikkelplatform dat direct aangewezen kan worden als beste. Het hangt vooral af van een groot aantal factoren. De meest belangrijke factoren hiervoor zijn:

  • Doelgroep van mobile app: Wil ik als mobile app developer een app bouwen voor iOS of Android? Dan is native de “way to go”. De beste performance en altijd direct de beschikking over de laatste functies van het platform.
  • Eisen en wensen van het mobile app: Een app met data in lijsten kan met elk ontwikkelplatform gerealiseerd worden. Specifieke app functies zoals video/fotobewerking, augmented reality of 3D kunnen een reden zijn om te kiezen voor native of een platform dat hier de juiste onderdelen voor heeft.
  • Lange termijn strategie van je mobile app: Moet de app in de toekomst beschikbaar komen op meerdere platformen of is de verwachting dat de skill set van ontwikkelaars gaat veranderen in de toekomst, dan kun je daar met een keuze voor een app ontwikkelplatform nu al op anticiperen.
  • De skillset van App development team: Bestaat je team van web developers dan is React Native een natuurlijke fit. Veel C# kennis, dan heeft Xamarin toch de beste kaarten. Besteed je de mobile app ontwikkeling traject volledig uit? kies dan een app ontwikkelplatform dat het beste past bij de wensen van de app. Maar houd ook rekening met de toekomst, is het de bedoeling de app in de toekomst zelf te beheren of door te ontwikkelen? Vraag je af wat voor soort app ontwikkelaars je in de toekomst gaat aannemen. De markt voor goede app ontwikkelaars is namelijk krabt.

 

  1. Mobile app development op basis van Cordova:

Een hybride mobile app bouwen met behulp van JavaScript, HTML5 en CSS is één van de populairste en makkelijkste manieren om een app te ontwikkelen. Voor web developers is dit een veilige keuze, ze kennen de technieken JavaScript, HTML, CSS – al en met behulp van framework zoals Cordova, PhoneGap of Ionic creëren ze eenvoudig een mobile app.

Hoe zorgt de App developer dat een app toegang tot de hardware van de telefoon krijgt?

Cordova is de basis achter o.a. PhoneGap en Ionic. Cordova zorgt ervoor dat je middels JavaScript API vanuit de app kan communiceren met functies van de smartphone zoals de camera, accelerometer of GPS. Zodra de mobile app klaar is kun je met Cordova een app bouwen die vervolgens geïnstalleerd kan worden op de smartphone of tablet. De filosofie achter Cordova is “write once, run everywhere”. Dit is direct het grootste voordeel: één codebase die werkt op alle platformen. En ben je een web developer dan hoef je geen nieuwe technieken te leren. Een nadeel is wel dat de app minder goed presteert dan een native app, denk hierbij aan snelheid waarmee de app reageert op input maar ook aan animaties wanneer je naar een ander scherm gaat in de app. Dit komt omdat de applicatie via een webview draait op de hardware van het toestel en niet rechtstreeks zoals bij een native app.

 

  1. Mobile app bouwen met React Native

Als app developer gebruik ik zelf wel vaak React Native en alhoewel React Native relatief nieuw is, is het wel een perfecte optie om snel applicaties te ontwikkelen voor meerdere platformen. React Native is een open source framework wat is ontwikkeld door Facebook om met behulp van JavaScript native apps te ontwikkelen voor iOS en Android. Ondanks dat React Native relatief nieuw is, wordt het al gebruikt door een aantal grote techbedrijven zoals Facebook, Instagram, Airbnb, Tesla en SoundCloud. Ook is het populair in de app development community als je het vergelijkt met Xamarin en PhoneGap. React Native is gebaseerd op JavaScript maar de basiskennis van een web developer moet worden vergroot met bijvoorbeeld React & JSX. Gelukkig ligt dit wel in het verlengde van zijn huidige kennis.

React Native vergeleken met Cordova/PhoneGap/Ionic

Zoals eerder aangegeven zijn Cordova/PhoneGap/Ionic hybride apps. Code op basis van HTML en JavaScript wordt getoond in een webview. Bij React Native werkt dit anders, de user interface (UI) wordt geschreven in JavaScript React componenten (JSX) en elk React Native UI component is gekoppeld aan een native UI component in iOS of Android. De JavaScript componenten worden dus omgezet naar native componenten voor het onderliggende platform. Als resultaat krijg je hiermee een native app, dat vele voordelen heeft zoals een betere performance en een platform specifieke herkenbare interface (UI). Dit toont ook gelijk een nadeel aan, namelijk niet elk UI component is beschikbaar in iOS of Android. Daarom zal je soms extra code moeten ontwikkelen voor één van de twee platformen. Hierdoor is ongeveer 85% tot 100% van de code herbruikbaar. De filosofie van React Native wijkt dan ook af van Cordova: “Learn once, write everywhere and achieve maximum code reusability”.

 

  1. Mobile app bouwen met Xamarin van microsoft

Als freelancer vanuit kiyani.nl heb ik in verleden vaak Xamarin in mobiele app industrie moeten toepassen. Xamarin is een ontwikkeltool voor crossplatform ontwikkeling van mobiele apps. Net als React Native levert ook Xamarin een native app op. Met Xamarin is het mogelijk native apps te ontwikkelen in C# voor Android, iOS, Windows en Mac. De filosofie van Xamarin is bijna zelfde als React Native. Het grootste verschil is dat voor Xamarin een totaal andere ontwikkeltaal wordt gebruikt om mobile apps te bouwen,  namelijk C# van Microsoft. Ook hier is het hergebruik van code niet 100%. Door de inzet van Xamarin.Forms is hergebruik wel te maximaliseren. Xamarin.Forms vertaalt interface componenten naar elke platform. Voor ongeveer 90% van de native UI componenten is een variant in Xamarin.Forms beschikbaar. Microsoft had in 2016 Xamarin overgenomen. Xamarin is sindsdien een open source geworden en er zijn gratis ontwikkeltools beschikbaar. Xamarin is dan ook een voor de hand liggende keuze voor organisaties die gebruik maken van een Microsoft infrastructuur en al C# ontwikkelaars in dienst hebben.

 

  1.  Mobile App development met low code platforms

Als we breder kijken dan alleen mobile app development, dan zijn low code development platforms ook interessant. De laatste jaren worden low code platformen steeds vaker ingezet voor het ontwikkelen van mobiele apps. Deze ontwikkelplatformen nemen het “echte” ontwikkelwerk uit handen en het is mogelijk om snel mobiele applicaties te ontwikkelen. Een voorbeeld hiervan is Mendix. Het platform leent zich perfect om snel innovatieve applicaties te ontwikkelen. Dit beperkt zich niet alleen tot mobiele applicaties, ook web applicaties kunnen met een druk op de knop gerealiseerd worden.

Advies voor mobile app development van Mahdad Kiyani

Er is niet een perfecte manier voor het ontwikkelen van een mobiele app. Zoals eerder aangegeven hangt de keuze af van veel aspecten. Als je al app ontwikkelaars in dienst hebt zal dit grotendeels de keuze bepalen. Voor een web developer is overgang naar React Native een natuurlijke en heb je wel de voordelen van een native app. Als de organisatie gebruik maakt van C#, zal Xamarin waarschijnlijk een streepje voor hebben.

Andere Blogs?