ReferentiesDevelopmentXamarin – Cross Platform mobile development

Xamarin.Forms - Cross Platform mobile development

Xamarin_forms

Delta-N stelt ieder jaar een online Tour de France-spel beschikbaar. Hiermee kunnen bedrijven gratis een eigen Tour-poule opzetten. Sinds 2014 omvat het spel ook een App, ontwikkeld voor iOS, Android, en Windows Phone. Doordat het spel dit jaar een stuk interactiever gemaakt is, diende ook de App aangepast te worden. In plaats van de app op de drie platformen aan te passen, is er gekozen om de app volledig opnieuw te ontwikkelen in Xamarin Forms.

De AzureTour App

Het Tourspel dat Delta-N gratis aanbied heet AzureTour. De website wordt gehost op het Microsoft Azure platform en er wordt gebruikt gemaakt van verschillende Azure componenten zoals Azure Notification Hubs voor het versturen van push notificaties. Ontwikkeling van AzureTour stelt ons in staat ervaring op te doen met de laatste technologieën.
Sinds vorig jaar is er ook een mobiele App beschikbaar voor iOS, Android, en Windows Phone. Deze Apps zijn ontwikkeld als native apps die alle drie afzonderlijk zijn ontwikkeld m.b.v. de platform specifieke ontwikkeltools (Xcode, Eclipse en Visual Studio). Dit resulteert in drie verschillende apps met ieder een eigen code base die ieder afzonderlijk ontwikkeld en getest dienen te worden.

Wat is Xamarin?

Xamarin is een tool waarmee het mogelijk is om m.b.v. C# en het .NET Framework, native apps te ontwikkelen voor iOS, Android en Windows Phone. De apps kunnen gebruik maken van de native features die de verschillende platformen te bieden hebben en hebben de native look and feel.
Xamarin integreert naadloos met Visual Studio waardoor het voor .NET ontwikkelaars direct vertrouwd aanvoelt. De oplossing die met Xamarin ontwikkeld wordt bevat een 'Shared' component. Dit deel van de oplossing handelt bijvoorbeeld de communicatie met de datastore af en bevat alle business logica. Veelal bevat dit component het merendeel van de regels code die geschreven dient te worden. Dit deel van de App is bruikbaar op ieder van de drie afzonderlijke platformen. Daarnaast dient er voor ieder van de drie platformen een User Interface component ontwikkeld te worden. Dit deel wordt ook ontwikkeld in C# maar bevat voor ieder van de platformen specifieke code.
Xamarin biedt voor Delta-N een aantal voordelen. Het is niet meer nodig om kennis in huis te hebben van Objective-C en Java om native apps te ontwikkelen voor de drie belangrijke mobiele platformen. Daarnaast is er een hoge mate van 'code-reuse' over de verschillende platformen heen.

Xamarin Forms

Xamarin Forms is een uitbreiding op Xamarin. Het biedt een framework waarmee snel en eenvoudig ook de user interface onderdeel van de app gedeeld kan worden over de drie afzonderlijke platformen. Dit betekent dat er slechts één user interface ontwikkeld wordt die tijdens compilatie vertaald wordt naar de platform specifieke controls. De native look en feel van de app op de verschillende platformen blijft dus behouden. Alleen in het geval dat er hele specifieke user interface onderdelen gebruikt dienen te worden in de app is er nog platform specifieke C# code noodzakelijk. Met behulp van Xamarin Forms wordt het percentage 'code reuse' t.o.v. van 'standaard' Xamarin nog verder verhoogd.

Ervaringen

De eerste ervaringen met Xamarin.Forms zijn zeer positief. De AzureTour apps zijn in korte tijd volledig herontwikkeld met Xamarin Forms en bevatten slechts een zeer klein deel aan platform specifieke code. Wel is te merken dat Xamarin Forms nog in ontwikkeling is. Er ontbreken nog features en we zijn tegen een aantal bugs aangelopen. Gelukkig kan er in dergelijke gevallen gekozen worden om terug te vallen op 'standaard' Xamarin en kan er in C# een stukje platform specifieke code geschreven worden. Een grote kans dat er bij een volgend project weer gekozen zal worden voor Xamarin Forms!