06 51 303 223 info@topulus.com
Topulus Native Apps

Uniek – .NET-code iOS en Android: 95 procent overlap / hergebruik

Wij bouwen native mobile apps voor iOS en Android. In .NET en met Xamarin. Wij weten hoe je dat heel efficiënt kan doen, met maar liefst 95% overlap van de .NET-code voor de versies voor iOS en Android. Echt, dat kan. En we vertellen jou graag hoe we dat doen en welke moderne technieken we daarvoor inzetten. Ben je programmeur? Dan bouwen wij graag de basis voor jou. Want als de eerste opzet goed is, dan kan je het daarna zelf. Zonder ons.

Veel en specialistisch werk

Een goede native app ontwikkelen is veel werk. iOS apps (iPhone en iPad) worden meestal ontwikkeld met Swift of Objective-C en Android apps met Kotlin of Java. Daarbij is ook veel kennis nodig van de api’s en de tools om bijvoorbeeld de layout op te zetten. Veel specialistische kennis dus die bovendien totaal verschillend is voor enerzijds iOS en anderzijds Android. Omdat de meeste .NET-ontwikkelaars hiermee geen ervaring hebben, wordt dat werk vaak uitbesteed aan een gespecialiseerd bedrijf.

Waarom uitbesteden niet handig is

Jij kent .NET goed. Je bouwt een mooie web-app met ASP.NET voor jezelf of voor een klant. En die onderhoud je; geregeld wijzigingen, updates en nieuwe versies. Dan is het niet handig om de bouw van een native app uit te besteden. Het werkt namelijk prima voor een eerste versie, maar als je je web-app verder ontwikkelt en uitbreidt, wil je graag dat al die wijzigingen en extra’s ook in de apps terecht komen. En dan gaat het mis. Want die externe partij die de native apps bouwde, die kent jouw business niet zo goed zoals jij die kent. Er ontstaat veel dubbel werk en veel overleg blijkt nodig: het synchroon houden van jouw web-app project enerzijds met de apps door die externe partij anderzijds loopt gewoon niet lekker en kost onnodig veel tijd en geld.

Maar hoe dan wel?

Als je je web-applicatie zelf ontwikkelt met ASP.NET, dan zou het natuurlijk ideaal zijn als je zelf de native apps ook kan ontwikkelen en onderhouden in .NET. En dat kan. Met Microsoft Xamarin. Xamarin is meer dan 10 jaar geleden ontwikkeld als ‘Monotouch’ en ‘Mono for Android’ en enkele jaren geleden overgenomen door Microsoft. Hoe wij jou daar met relatief weinig ondersteuning goed mee op weg kunnen helpen, dat vertel ik zo.

Maar eerst dit: Met Xamarin kan je alles wat je met de standaard native tools van iOS en Android ook kan, omdat Xamarin een directe link legt naar de native api’s. Het wordt veel gebruikt door grote bedrijven (zoals door de Nederlandse Spoorwegen), wat een belangrijke bevestiging is van de kwaliteit ervan. Toch hoor ik vaak bij kleine en middelgrote bedrijven dat ze er niet zulke goede ervaringen mee hebben. Hoe kan dat?

Eigenlijk verbaast het me niets. In het MKB zijn veel goede bedrijven actief met goede .NET-programmeurs. Maar die programmeurs hebben een verkeerde verwachting. Ze redeneren als volgt: Xamarin is .NET en omdat we veel ervaring hebben met .NET, verwachten we een vliegende start met Xamarin. En daar gaat het fout, want die vliegende start blijft uit. Maar dat ligt niet aan Xamarin. Dat ligt aan een onrealistische verwachting. Hoe zit dat dan? En hoe dan wel?

Xamarin met een beetje hulp

Zoals gezegd, een goede native app ontwikkelen is veel werk. Ook met Xamarin. Met Xamarin kun je heel veel doen in .NET en Xaml (Xamarin Forms). En met de juiste basisopzet kan je maar liefst 95% van de code die je in .NET en Xaml ontwikkelt delen met de apps voor iOS en Android. Dat is niet alleen een groot voordeel bij het ontwikkelen van de eerste versie van de app, maar zeker ook bij het onderhouden en uitbreiden wat je daarna nog jarenlang zal blijven doen.

Om tot die goede basisopzet te komen is niet alleen .NET-kennis nodig, maar moet je ook goed begrijpen hoe Xamarin samenwerkt met de iOS en Android api’s, wat de basisstructuur van een native app is, hoe je met Xamarin externe libraries en tools moet gebruiken die niet voor Xamarin ontwikkeld zijn, en veel meer zaken waar een goede .NET ontwikkelaar meestal geen ervaring mee heeft. Een beetje hulp kan je dan goed gebruiken, bij die eerste en o zo belangrijke basisopzet.

Die basisopzet

En daarom adviseren wij om die eerste opzet door een Xamarin-specialist te laten maken. Laat hem vooral ook samen met jou en je ontwikkelaars een wiki maken waarin je snel kunt terugvinden hoe je bijvoorbeeld de updates moet publiceren. Leg al dat soort dingen vast. Want als de basis goed is, goed gestructureerd en gedocumenteerd, dan kunnen je .NET-ontwikkelaars er uitstekend zelf mee verder. Zonder onze hulp. Je houdt dan alles in eigen beheer, met één goede .NET-code die voor 95% overlap heeft tussen de beide app-versies voor iOS en Android. En je roept alleen de hulp in van een specialist als er eens iets extra’s moet gebeuren, of als je een keer vast zou lopen.

En hoe verhoudt zich de code van de web-app tot die van de native apps?

De clientkant van web-apps wordt nu meestal met Javascript gebouwd en dus niet in .NET. Maar aan de serverkant zijn er wel zaken die je op een slimme manier kunt hergebruiken om tijd en dus kosten te besparen. Denk daarbij aan de business logic, de api’s van de databases (mits die goed gestructureerd zijn opgezet) en de DTO’s (de Data Transfer Objecten). Maar de meeste winst is te behalen als je Microsoft Blazor gebruikt, omdat je dan de web-app-code ook in .NET schrijft.
Over Blazor en onze tips en trucs over hoe je slim web-apps bouwt, en over de synergie die je met de code van de native apps kunt hebben, lees je hier.

Support

Als jij wat ondersteuning wilt, maak dan gebruik van onze meer dan 10 jaar ervaring met Xamarin. Wij helpen je graag als je wilt starten met een goede Xamarin-app. En we zijn ook altijd beschikbaar om je – na die eerste opzet – later nog te helpen als jij of je ontwikkelaars tegen een probleem aan lopen. Voor een uurtje. Of voor een dag: snel, flexibel en nooit langer dan nodig. Zodat jij weer verder kan. Want het uitgangspunt blijft: je kan het zelf.