Heb je al van Apache Cordova gehoord ? Niet? En wellicht van PhoneGap? Wil je weten wat precies de relatie tussen deze twee is en wat Cordova voor jou kan betekenen – lees dan deze blog…

Blog Alen - CordovaPhoneGap is een bekende open source framework waarmee apps voor mobile devices gemaakt kunnen worden. Hierbij wordt gebruik gemaakt van bekende web technieken zoals HTML5, CSS3 en JavaScript. Tijdens het bouwen van een app zorgt PhoneGap er voor dat de web oplossing in een soort native app wordt verpakt. Deze app kan vervolgens op het platform waar het voor bedoeld is worden gebruikt. Nu is er een definitie van PhoneGap gegeven. Maar wat is dan de relatie van PhoneGap met Cordova? Het antwoord is dat PhoneGap een distributie van Apache Cordova is. Daarbij kan Cordova als de drijvende technologie achter PhoneGap worden gezien. Ook al is nu gedefinieerd wat PhoneGap/Cordova is en wat de relatie er tussen is, zijn er nog meer vragen. Bijvoorbeeld: waarom twee namen voor iets wat bijna hetzelfde lijkt te zijn? Om daarop een antwoord te geven moet er even naar de geschiedenis van PhoneGap worden gekeken.

Een beetje geschiedenis

Een Canadees bedrijf genaamd Nitobi heeft in verleden een project genaamd PhoneGap gestart. In 2011 heeft Adobe, Nitobi overgenomen. Adobe heeft niet de codebase gekocht, maar het heeft de medewerkers en de naam PhoneGap overgenomen. De open source software van PhoneGap was gedoneerd aan Apache Software Foundation.

Sinds Adobe de eigenaar van de naam is geworden had het project een nieuwe naam nodig. De nieuwe naam is “Cordova” geworden – genoemd naar de straat in Vancouver waar Nitobi gevestigd was. Het hernoemen van de codebase naar Cordova is vooral gedaan vanuit de juridische beweegredenen.

PhoneGap is geïntegreerd met Adobe Services en Apache Cordova mist deze integratie. Voor de rest zijn deze twee frameworks nagenoeg hetzelfde.

Onder de motorkap

Apache Cordova gebruikt HTML5 en CSS3 voor het presenteren van de gebruikersinterface. JavaScript wordt gebruikt voor de logica van een app. Vaak wordt Cordova in combinatie met UI frameworks gebruikt om de ontwikkeling te versnellen en de kwaliteit van de oplossing te verhogen. Enkele bekende UI frameworks zijn jQuery Mobile, WinJS, Dojo Mobile, Sencha Touch en Ionic.

Vanuit Cordova is er een verzameling van JavaScript Application Programming Interfaces (API) die het mogelijk maakt om de native functies van een device te gebruiken (bijvoorbeeld camera of geolocation).

Cordova zorgt er voor dat deze “web” oplossing in een app wordt verpakt, die dan op één van de mainstream platformen draait (iOS, Android en Windows Phone). Per platform moet er een binary worden gebouwd.

Apache Cordova en Microsoft

Microsoft is al langer bezig met “cloud first, mobile first” strategie. Dat is ook te merken aan de adoptatie van verschillende platformen en frameworks. Dat geldt ook voor Cordova. Voor Visual Studio 2013 waren er als Visual Studio Tools for Apache Cordova als een community technical preview (CTP) editie beschikbaar. In Visual Studio 2015 is Cordova een standaard onderdeel geworden van Visual Studio installatie.

Samenvattend

Door gebruik te maken van Apache Cordova is het mogelijk met een codebase meerdere platformen (iOS, Android, Windows Phone) te bereiken. Dat is mooi. Cordova gebruikt de default browser van het platform waar het op draait om de gebruikersinterface te renderen. Dat kan in sommige gevallen resulteren in een minder mooie interface. Iets om rekening mee te houden.

Performance is een ander aspect die altijd belangrijk is bij de app ontwikkeling en vooral bij mobile development. Een Cordova app zal minder snel zijn dan een native app. De ontwikkelaar zal hiermee rekening moeten houden tijdens het ontwerp en de implementatie.

De adoptie van het platform door Microsoft en integratie in Visual Studio is een plus punt. Daarnaast biedt Cordova (ervaren) web ontwikkelaars de mogelijkheid om redelijk snel aan de slag te kunnen en mobile apps te gaan bouwen.

Concluderend vind ik dat Cordova vooral interessant is voor de simpele apps die niet te complexe gebruikersinterface hebben en geen zware back-end systeem integratie. Het wordt niet van tevoren buitenspel gezet voor andere soorten apps, maar Cordova als oplossing dient goed overwogen te worden tegenover de requirements van de klant voordat het ingezet wordt.