Search

DotControl <3 Xamarin

Naar blogoverzicht
25 February 2016

Als we eerlijk mogen zijn durven we best toe te geven dat bij DotControl allemaal een ‘inner geek’ in
ons schuilt. En een echte ‘geek’ is altijd op de hoogte van de laatste technologische ontwikkelingen
en deze week zagen wij er een om direct te omhelzen! Gisteren werd eindelijk het grote nieuws
bekend gemaakt dat Microsoft het app-ontwikkelplatform Xamarin heeft overgenomen. Bij DotControl
volgen we Xamarin natuurlijk al een tijdje en we delen dan ook graag meer informatie over wat
Xamarin precies is en welke voordelen Xamarin biedt voor app-development.

#XamarinJoinsMicrosoft

De hoe en wat binnen app-development.

Native apps zijn apps die draaien op (mobiele) devices van gebruikers. Dit in tegenstelling tot websites of web-apps, die draaien binnen de browser van gebruikers. Ieder mobiel platform heeft haar eigen programmeertaal en ontwikkelomgeving. Dat betekent dat je als app ontwikkelaar kennis zou moeten hebben van al deze verschillende talen, omgevingen en eigenaardigheden. Maar in de praktijk zie je vaak dat mobile developers zich enkel specialiseren in één specifiek platform zoals bijvoorbeeld iOs (Objective X), Android (java) of Windows (c#).

Voor het ontwikkelen en publiceren van een app dat draait op verschillende devices betekent dit dat er aparte versies geïmplementeerd moeten worden en vaak ook door verschillende developers. Deze manier van developen wordt ook wel de ‘Silo Approach’ genoemd. Helaas leidt dit vaak tot een hoop onnodig en inefficient werk dat wij als developers graag willen voorkomen. Alhoewel er een hoop te zeggen is voor het ontwikkelen van losse native apps blijkt er in de realiteit toch niet altijd het budget of tijd voor te zijn.

Dit probleem is niet onopgemerkt gebleven en diverse partijen hebben dit zogeheten ‘cross platform app development’ probleem op verschillende manieren al proberen op te lossen. Zoals bijvoorbeeld PhoneGap, Appcelarator Titanium, Telerik Platform en Xamarin. Wait what?! Xamarin? Jazeker, Xamarin is the new kid on the block binnen app development en wij zijn nu al fan :)

 

Wat zijn de voordelen van Xamarin?

In tegenstelling tot "write once, run anywhere" oplossingen als bijvoorbeeld het populaire PhoneGap (waarin in feite een in html/css en javascript gebouwde webapp wordt gedraaid in embeddable browser control op het device) biedt Xamarin wel native code en dus native performance. Ook ondersteunt Xamarin 100% van de verschillende native api's per platform, en niet alleen een gemene deler hiervan. Alles wat dus mogelijk is op een native platform, kan ook in Xamarin. Een derde voordeel (of misschien beter: verschil) is dat Xamarin een native user experience biedt. Xamarin apps passen zich per platform aan de look&feel die gebruikers gewend zijn op dat platform.

 

Het grootste voordeel is dat Xamarin het mogelijk maakt om apps te ontwikkelen in 1 taal (c#) waardoor er gemiddeld zo'n 75% code hergebruik is tussen de verschillende platformen. Met behulp van Xamarin Forms is het zelfs mogelijk om 99% code hergebruik te realiseren. Xamarin Forms is met name geschikt voor zakelijke applicaties en rapid prototyping.  Iedere c#/.Net developer kan dus nu ineens apps developen voor iOs, android en Windows Phone in de taal van zijn/haar voorkeur! Daarnaast kun je apps maken voor iPad, Apple Watch, Apple TV,  Mac OS en android wear als de Samsung Gear.

 

mobile application development platform

 

Daarnaast biedt Xamarin nog een hele hoop extra voordelen voor c#/.Net developers. Denk hierbij aan de productiviteitsvoordelen van de professionele ontwikkelomgeving Visual Studio, de krachtige mogelijkheden van een taal als c# en het kunnen gebruiken van reeds bestaande .net code en componenten (met vaak geen of minimale aanpassingen).  Ook is er inmiddels een uitgebreid ecosysteem van Xamarin en 3rd party Xamarin plugins en componenten. Een app heeft vaak ook een backend nodig en dat moet tegenwoordig natuurlijk cloud based zijn. Aangezien zowel Azure als Xamarin gebaseerd zijn op Microsoft (en sinds kort dus ook allebei van Microsoft) werken deze twee technologien zeer goed samen.

 

Heeft Xamarin dan geen nadelen? Tuurlijk wel...

Alhoewel Xamarin native code genereert, is er wel een extra "laag" nodig als binding tussen het native OS en de native app code. Iedere extra laag vergroot natuurlijk de kans op de introductie van een bug. Daarnaast komen er geregeld nieuwe releases uit van de verschillende mobiele OS-en met mogelijk ook nieuwe functionaliteiten/api's waardoor deze bindings aangepast moeten worden door Xamarin. Aangezien deze OS changes niet out of the blue komen, maar al in een vroeg stadium in alpha/beta vorm aan developers worden aangeboden, kan Xamarin hiervoor een same day support garantie bieden.

 

Een ander veel gehoord tegenargument is dat de bestandsgrootte van de app installer groter is dan wanneer je geen Xamarin zou gebruiken. Dit klopt en komt doordat je een deel van het .Net framework mee moet packagen in je app. Dit is natuurlijk vervelend voor het mobiele dataverkeer van de gebruiker. Veel gebruikers hebben hun telefoon zo ingesteld dat apps alleen over Wifi worden geinstalleerd/geupdate en niet over het mobiele 4G netwerk. Daarnaast is de extra bestandsgrootte te minimaliseren door Xamarin’s Assembly Linker. Deze linker zorgt ervoor dat alleen de ook daadwerkelijk gebruikte .Net assemblies worden meegenomen en niet het hele .Net framework. 

 

Wat voor hardware setup heb ik nodig voor Xamarin?

Xamarin’s eigen ontwikkelomgeving Xamarin Studio draait zowel op Windows als op Mac. Als alternatief kun je ook gewoon in Visual Studio ontwikkelen. Beide omgeving bieden UI designers. Wanneer je op Windows ontwikkelt, heb je een Mac build host nodig om iOs apps te kunnen maken. Voor zowel iOs als android zijn er device emulators beschikbaar. Maar je kunt natuurlijk ook op je eigen iPhone en/of android phone debuggen. Zelf gebruik ik een Macbook Pro, waarin ik m.b.v. Parallels tegelijk mijn Mac build host als Windows voor Visual Studio draai. Zie hieronder een voorbeeldje van mijn thuissituatie ;-)

 

 

#AppsAndAbs #Weekender #EatTrainCodeRepeat @dotcontrol #healthcityrotterdam 💪🏼📱💻🖱👊🏼

A photo posted by Rutger Buijzen (@rutgerbuijzen) on


 

 

Overige Xamarin Producten/diensten

Naast het app-ontwikkelplatform biedt Xamarin ook Xamarin Test Cloud, Xamarin Insights en Xamarin University aan. Xamarin Test Cloud is een cloud based test platform. Hiermee kun je dus eenvoudig je app laten testen op alle denkbare verschillende mobiele devices. Voordeel is dat je op deze manier je app kunt testen zonder dat je zelf over al die verschillende fysieke devices zou moeten beschikken (alsof dat überhaupt al mogelijk zou zijn met al die verschillende telefoons tegenwoordig ;-). Met Xamarin Insights kun je realtime het gebruik van je app monitoren. Denk hierbij aan het verzamelen van gebruikersstatistieken en analyse van crash reports. Xamarin University biedt, zoals de naam al suggereert,  een uitgebreid curriculum aan Xamarin courses en Xamarin certificering. Xamarin is dus een complete oplossing voor cross platform mobile app development.

 

Misschien heb je het al gemerkt maar wij vinden Xamarin en de erkenning door Microsoft gers. We gaan dan ook graag in gesprek over de mogelijkheden van Xamarin voor DotControl om de wildste app ideeën voor onze klanten te realiseren. Houd dus onze blog en site in de gaten voor de eerste Xamarin gebaseerde apps die gereleased zullen worden in de verschillende app stores!

 

Rutger Buijzen
@rutgerbuijzen

Over Xamarin

Xamarin is opgericht in 2011 door de originele ontwikkelaars van Mono. Mono is de open source implementatie van Microsoft's .Net framework zodat dit niet alleen op Windows maar ook op b.v. Linux, android en OS X kan draaien. Xamarin bestaat inmiddels uit zo'n 350 werknemers in 4 kantoren wereldwijd. Van Microsoft technologie wordt helaas nog steeds vaak ten onrechte gedacht dat het per definitie niet open source is. Dit is echter een misvatting. Zeker de laatste tijd is Microsoft bezig steeds meer van haar technologie uit te brengen onder een open source license en daarnaast vervult microsoft een zeer actieve rol binnen de open source community. De overname van Xamarin door Microsoft bevestigt nogmaals dat Microsoft andere platformen omarmt.

 

Deel deze post op social media

Van Nelleweg 1, 3044 BC Rotterdam
+31 (0)10 71 44 646 info@dotcontrol.nl