blog.

Keuzestress in mobile development (deel 2)

Cross platform development. Het is een term die in de laatste jaren steeds nadrukkelijker naar voren komt in de wereld van mobile development. Waarom ook niet? Cross platform development zorgt ervoor dat je maar één keer code hoeft te schrijven in plaats van meerdere ontwikkelaars op zowel Android als iOS te zetten. Wat een gemak, maar waar zitten de verschillen?

Mobile development

Whyellow nieuwsbrief

Nooit meer iets missen van Whyellow? Schrijf je dan in voor onze nieuwsbrief.

De casus

Wil ik een app met formuliertjes? Een app met hele mooie animaties? Wil ik snel de app kunnen wijzigen? Het zijn allemaal vragen die van belang zijn voor de keuze van je platform. Er zijn verschillende tools voor cross-platform ontwikkeling beschikbaar o.a.:

  • Xamarin
  • React Native
  • Flutter
  • Progressive Web Apps (PWA)
  • Ionic
  • Cordova/PhoneGap

Uit bovenstaande lijst hebben we de drie beste en populairste oplossingen gekozen: Flutter, Xamarin en React Native. Hieronder een korte beschrijving en de pro’s en con’s van deze drie.

Xamarin

Hét platform van Microsoft! Althans, Microsoft heeft het overgenomen. Xamarin is een enorm populaire speler op de markt vanwege de veelgebruikte C# taal, die voor veel ontwikkelaars bekend is. Dit platform is geweldig voor het bouwen van een simpele app waar het voornamelijk gaat over administratieve zaken. Bijvoorbeeld een ledenbestand dat beheerd moet worden. In Xamarin zou je gemakkelijk een app kunnen maken waar je leden kunt toevoegen, aanpassen en verwijderen. Als je een ontwikkelaar hebt die goed weet hoe dit platform in elkaar zit, kunnen apps zoals deze in een handomdraai opgezet worden. Het maken van schitterende animaties zoals de grootste apps van Google ook hebben, kan echter wel een vervelend en tijdrovend klusje worden.

Meer lezen over Xamarin? Volg deze link.

React Native

Het antwoord van Facebook op Xamarin – en wát voor één. Door de integratie met NPM (Node Package Manager) zijn er sinds de start van React Native enorm veel packages beschikbaar gemaakt. Packages zijn sets code die ontwikkeld zijn door andere ontwikkelaars om React Native of ontwikkelen in het algemeen makkelijker te maken. Dit resulteert erin dat apps in React Native zeer snel ontwikkeld kunnen worden. Ze kunnen ook snel op een echt apparaat getest worden dankzij het gebruikte expo framework. Hiermee kan je je gemaakte app direct op je eigen mobiel uitproberen.

Meer lezen over React Native? Hou het Twitter account van React Native in de gaten

Flutter

Flutter is het gloednieuwe platform van Google dat dit jaar (2019) is uitgebracht als antwoord op React Native. Dit platform is snel enorm gestegen in populariteit vanwege de mogelijkheden aan ontwerp en animaties. Hierdoor komen de prestaties van deze apps heel dicht bij native apps. Het is een nieuw platform, dus de hoeveelheid packages is nog relatief laag, maar de verwachting is dat dat snel verandert!

Een vergelijking: welk platform voor jouw app?

Welk platform past het beste bij de app die jij wil (laten) ontwikkelen? Hieronder een vergelijking op een aantal aspecten.

Gemak waarmee het (ontwikkelen op het) platform te leren is

Flutter is eenvoudig te leren als je Dart kent – de objectgeoriënteerde programmeertaal van Google. In Flutter gebruik je namelijk de programmeertaal Dart om je apps te bouwen. Je zou denken dat het leren van een nieuwe taal tijdrovend is, maar je hoeft feitelijk alleen de concepten van deze taal te begrijpen. En als je andere talen zoals JavaScript kent, is dat helemaal niet zo moeilijk.

Het leren van de concepten van React Native is eenvoudig als je een ervaren JavaScript-ontwikkelaar bent en je wat React-skills hebt. Dit framework is gemakkelijk te leren en vergt niet veel inspanning, maar vereist wel kennis van JavaScript. Als je Android kent, is het gemakkelijker om Xamarin te begrijpen, omdat veel zaken identiek zijn en C# erg lijkt op Java. Met Xamarin kan je tot 70% van het ontwikkelingswerk op een tweede mobiel platform besparen door code te hergebruiken.

App performance

Voor de (mogelijke) performance van de app die gebouwd wordt, maakt het niet veel uit met welk platform je werkt. Hoewel ze alledrie net anders werken, bieden ze alledrie native of near-native ervaringen voor de eindgebruiker. Het enige verschil zit hem in de viewlaag van de platformen. Flutter biedt daar de beste near-native experience.

Productiviteit van ontwikkelaars

Met ‘hot reload’ (Flutter, React Native) of ‘live reload’ besparen ontwikkelaars op alle platformen tijd doordat apps opnieuw geladen kunnen worden zonder dat deze opnieuw gecompileerd hoeven te worden. Verder bieden ze ieder voor zich handige tools die de ontwikkeling van een app gemakkelijker maken. Het is echt afhankelijk van de ontwikkelaar en het type app dat gebouwd moet worden of op welk platform hij/zij productiever is.

Community support

Flutter staat bekend om zijn goede community-ondersteuning. Op GitHub heeft het (nu al) 33.248 sterren en 223 ‘contributors’ die het framework beter maken. React Native heeft ook een sterke community-ondersteuning. Op GitHub heeft het 66.693 sterren en 1.692 ‘contributors’ die helpen React Native te verbeteren. Voor Xamarin is er beperkte community-ondersteuning beschikbaar. Fora en help-ondersteuning zijn niet breed beschikbaar voor Xamarin-gebruikers op internet.

Apps gebouwd met deze frameworks

Flutter

Enkele prominente mobile apps die zijn gebouwd met Flutter: AppTree, Alibaba, Topline, Google AdWords, Google Greentea, Reflectly, Hamilton Musical, OfflinePal, Hookle, Birch Finance, BetaBubs en nog veel meer.

React Native

Enkele van de bekende mobile apps die zijn gebouwd met React Native: Facebook, Facebook Analytics, Facebook Ads

Xamarin

Mobile apps die ontwikkeld zijn met Xamarin zijn bijvoorbeeld (in Nederland wat minder bekend): Storyo, The World Bank, Just Giving, Olo, Skulls of the Shogun, APX, Insightly, FreshDirect, SuperGiant Games, Thermo Fisher Scientific, etc.

De keuze van Whyellow

Zoals al eerder benoemd in dit blog is de keuze voor een platform afhankelijk van de casus en zo bekijken we dit ook graag bij Whyellow. Wat zijn de wensen van jou, de klant? Wil je een enorm mooi ontworpen app met schitterende animaties en veel functionaliteit? Of wil je juist een simpele app met een niet al te ingewikkeld ontwerp en voornamelijk voor administratieve zaken? Deze wensen blijven essentieel voor de keuze van je platform, want alle besproken platformen zijn in de basis sterke platformen.

Deze blog is geschreven door Stijn Mommersteeg, Software Developer bij Whyellow.

Developer bij Whyellow

Deel deze blog

Weten of Whyellow ook voor jou een geschikte werkgever is?
We maken graag kennis met je.

Maak afspraak