Er zijn vele aspecten en voordelen verbonden aan het werken met Xamarin, en het gebruik en de populariteit lijken steeds meer gevraagd te zijn en de vraag blijft toenemen. Laten we eens uitzoeken hoe dit werkt, wat de behoefte is aan Xamarin ontwikkelaars, hoe je ze kunt vinden en interviewen, en wat het werken met Xamarin inhoudt.
App ontwikkeling over meerdere platforms lijkt in opkomst te zijn ten opzichte van native app ontwikkeling. In dit geval is dit specifiek te wijten aan de verlaagde kosten, en op de lange termijn aan het delen en hergebruiken van code, evenals de algehele functionaliteit. Xamarin ontwikkelaars worden hierdoor meer gevraagd dan voorheen.
In onze complete gids voor het inhuren van Xamarin ontwikkelaars leer je meer over de populariteit en gebruik van dit platform, de functie en verplichtingen van de ontwikkelaar, taken, uitdagingen, statistieken en meer.
Over Xamarin
Xamarin is een open-source tool platform dat op de markt gebracht werd in 2011. Het wordt gebruikt om presterende applicaties te creëren en te bouwen voor iOS, Windows en Android, dit allemaal met de programmeertaal C#.
Het is een abstractielaag die de communicatie tussen gedeelde code en platform code beheert, en het runt in een gecontroleerde omgeving met functies voor geheugentoewijzing en garbage collection.
Met Xamarin kunnen de ontwikkelaars gedeelde code beheren en communiceren binnen een bestaande platform code. Samengevat betekent dit dat alle ontwikkelaars min of meer 90% van hun applicaties kunnen delen op verschillende platformen.
Xamarin is native gecompileerd, en ontwikkelaars geven er bijna altijd de voorkeur aan om er apps met hoge prestaties mee te bouwen die native aanvoelen en er native uitzien.
Met Xamarin kun je native apps bouwen voor iOS en Android en native apps voor Mac en Windows. Echter, dit gezegd hebbende, kan een ontwikkelaar Xamarin niet gebruiken voor op het web gebaseerde plaatsing.
Statistieken over Xamarin
De statistieken over Xamarin leveren over het algemeen goede feedback.
De salarissen van Xamarin ontwikkelaars verschillen lichtelijk van positie tot positie. Een senior software engineer heeft een jaarlijks salaris van $120.885, terwijl een software engineer jaarlijks $126.942 verdient.
Verder heeft een full stack ontwikkelaar gemiddeld een jaarlijks salaris van $101,929, en we zien een grotere piek in de positie van mobiele ontwikkelaar met $126,831 per jaar.
In een enquête van Stack Overflow 2021, heeft de populariteit van Xamarin als een tool een percentage van 4.17%, en 43.32% werkt er het liefst mee, terwijl 56.68% het werken ermee meestal vermijdt.
We zien dat de percentages verschillen, maar niet heel veel.
Populaire merknamen die vertrouwen op het gebruik van Xamarin
Hier zijn enkele van de vele merknamen die Xamarin gebruiken:
- Storyo Video Story Creator
- Captio: Beheer van reizen en uitgaven
- Pinterest: Virtuele verkenning machine prikbord
- Fox Sports
- Siemens
- The World Bank: Enquête Afnemen App
- Just Giving: Online Fundraising Platform
- Insightly: CRM en Projectmanagement
- Olo: Online platform voor het bestellen van eten
- Skulls of the Shogun: Gaming App
- FreshDirect: Online levensmiddelenwinkel
- APX: Environmental Asset Tracker
- SuperGiant Games: Console Game voor Mobiel
- Thermo Fisher Scientific: Onderzoek en Ontwikkeling
Het interviewen van een Xamarin ontwikkelaar
Behulpzame tips voor een pre-screening interview
Een specialist in talentwerving focust op verschillende belangrijke factoren en cruciale zaken tijdens het interview met een Xamarin ontwikkelaar. Ze stellen specifieke vragen om de ervaring en expertise van een ontwikkelaar te beoordelen aan de hand van een aantal zaken.
Naast het vragen naar het aantal jaren aan ervaring en het dagelijkse werk dat met Xamarin wordt gedaan, richten zij zich ook op Engelse taalvaardigheid en sociale vaardigheden gedurende het interview proces. Dit garandeert de een meewerkende houding en de responsiviteit van de ontwikkelaar en bevestigt dat ze een vlekkeloze relatie met de zullen hebben met cliënten.
Technische vaardigheden van een Xamarin ontwikkelaar
Een ervaren Xamarin ontwikkelaar moet ervaring hebben met:
- Werken met C# Xamarin voor iOS en Android apps
- Ervaring hebben met .NET en XAML
- Kennis hebben van Object-georiënteerd programmeren
- Het vanuit het niets bouwen van apps en deze onderhouden
- Bugs in apps oplossen
- MVC en MVVM ontwerp patronen begrijpen
- Ervaring hebben met SQL, Notifications, Ads, Firebase
- Ervaring hebben met Microsoft Visual Studio en Xamarin Studio
Niet-technische vaardigheden van een Xamarin ontwikkelaar
Recruiters en specialisten in talent acquisitie overlappen elkaar in hun antwoorden wanneer ze gevraagd worden naar de niet-technische vaardigheden van een Xamarin ontwikkelaar.
Een geaccepteerde norm is dat de ontwikkelaar een substantiële en bovengemiddelde Engelse taalvaardigheid vertoont omdat dit cruciaal is voor een goede communicatie tussen cliënt en ontwikkelaar. Zichtbare communicativiteit en openheid om de functie en het portfolio te bespreken zijn zeer nuttig voor het algehele interview gesprek.
Xamarin interviewvragen om te overwegen
De volgende vragen zijn slechts een paar van de vele goede vragen om te overwegen voor de beoordeling van de vaardigheden en expertise van een Xamarin ontwikkelaar. Vraag tijdens het interviewen naar:
- Welke programmeertalen worden ondersteunt door Xamarin?
Verwachte antwoord: Wanneer we mobiele apps bouwen met Xamarin kunnen we C# maar ook Visual Basic.NET, en F# kiezen.
- Definieer Xamarin Profiler.
Verwachte antwoord: Xamarin Profiler representeert een praktische tool voor de analyse van de app en zijn gedrag. Deze tool was gecreëerd en uitgegeven door Microsoft. Deze tool analyseert niet alleen het algehele performatieve gedrag van de app maar analyseert ook allocaties van geheugen van de app. Xamarin profiler doet al het bovenstaande met Visual Studio, wat een nette en praktische interface representeert voor verwerking van graphics en het bouwen van apps. We moeten in Visual Studio zitten om dit te doen.
Wanneer we Profiler gebruiken krijgen we vele voordelen, zoals waar we af moeten komen van onnodige geheugenlekken bij bepaalde objecten.
- Wat kun je zeggen over Xamarin Insights?
Verwachte antwoord: Met behulp van de tool Xamarin Insights kunnen we nauw toezicht houden op evenementen, statistieken, gebrekkige patronen, en problemen in een app en kunnen we deze ook lokaliseren/identificeren. Sommige van de dingen die we observeren in dit geval zouden pagina bezichtigingen, lengte van operatie evenals knop aanraak problemen zijn. Dit wordt allemaal in real-time gedaan en we krijgen toegang tot zowel verlopen als huidige sessies. Daarnaast krijgen diepgaande inzichten in alle eigenschappen in de app die gebruikt worden en degene die niet gebruikt worden.
- Kun je ‘data binding’ in Xamarin definiëren?
Verwachte antwoord: Als een cruciaal onderdeel van de MVVM (ModelView-ViewModel) app architectuur, verbinden of linken we de eigenschappen van twee verschillende objecten en een het einde van dit processen zien we hoe een eigenschap de veranderingen in de andere eigenschap spiegelt.
Met andere woorden, we verbinden de UI van de app met zijn weergegeven app data. De verbinding is tussen een source en een target. We kunnen ontdekken welke eigenschappen we precies kunnen binden (welke bindbaar zijn) door gebruik te maken van Xamarin.Forms.
- Kun je onderscheid maken tussen Xamarin en Xamarin.Forms?
Verwachte antwoord: Xamarin representeert een platform, i.e., een tool voor de ontwikkeling van apps die ook open-source zijn. Met Xamarin kunnen we apps creëren voor Android, iOS en Windows met het gebruik van .NET (een open-source platform om apps te bouwen). Via Xamarin kunnen ontwikkelaars gemakkelijk bijna al hun web inhoud op meerdere platformen delen, en ze kunnen zelfs slechts een taal gebruiken om bedrijfslogica te schrijven. We kunnen apps schrijven op Mac of PC en de volgende stap is om ze te compileren in native-app pakketten (dit zijn .ipa voor iOS en .apk voor Android).
Xamarin.Forms is een UI framework dat open-source en voor meerdere platformen is, en dat wordt gebruikt om apps te ontwikkelen vanuit slechts een codebase die gedeeld is. Wanneer wij als ontwikkelaars Xamarin.Forms gebruiken plaatsen we de code enkel achter C#, en we gebruiken XAML (Extensible Application Markup Language) voor de gebruikersinterfaces. Het is uitstekend om code te testen en te delen, en om bedrijfslogica op meerdere platformen te delen. Ook is het goed om te ontwerpen op platforms en om de lay-out van de UI te delen.
- Wat is XAML?
Verwachte antwoord: XAML (Extensible Application Markup Language) representeert een markup taal die declaratief en ongelofelijk handig voor GUI (Graphical User Interface) omschrijving is, het toont ons meteen de instantiëren en de uitvoering van een object. Ook wordt XAML breed gebruikt om de Uis van apps te creëren.
Met XAML kunnen we visuals maken in de UI componenten, en het lijkt niet teveel op andere talen voor markup gebruik. Meerdere partijen kunnen tegelijkertijd aan met verschillende tools werken in de UI en de app logica. XAML staat UI definiëren tijdens de ontwikkeling van Xamarin apps toe en het is bijvoorbeeld niet verplicht is om te gebruiken met Xamarin.Forms.
XAML werkt met de app architectuur MVVM (ModelView-ViewModel).
- Vertel meer over Xamarin Live Player.
Verwachte antwoord: Als we live veranderingen willen aan brengen in de app die geen plaatsing kabel of emulator nodig hebben, en om te zorgen dat deze veranderingen live te zien zijn gebruiken we een tool genaamd Xamarin Live Player. Hiermee zijn debugging en testen praktischer en simpeler, en het mooie is dat we dit hele proces niet hoeven te werken met een fysiek apparaat.
Bij het installeren van een kleinschalige app op het apparaat, wordt een communicatie gevestigd tussen de ontwikkelingsmachine en zijn Visual Studio IDE (Integrated Development Environment) omvat binnenin de machine voor ontwikkeling.
Kort samengevat kunnen wij ontwikkelaars apps snel plaatsen om Andorid en iOS apparaten wanneer we gebruik maken van Xamarin Live Player.
- Omschrijf ListView en TableView.
Verwachte antwoord: De list view en table view zijn controls in Xamarin.Forms.
ListView wordt alleen op meerdere manieren gebruikt als we lijsten van data hebben die te scrollen zijn, en deze klasse biedt ondersteuning voor data binding evenals context acties. Aan de andere kant is er met ListView geen ondersteuning voor XAML items definiëring. Het is het beste wanneer we ListView gebruiken voor enige collecties die slechts een enkel type data zijn. ListView presenteert de data verticaal opgestapeld.
TableView wordt gebruikt wordt gebruikt om de lijsten van data te bekijken die horizontaal te scrollen zijn, en dit is toepasbaar voor de secties van rijen die verschillende modellen hebben en geen gedeeld model. Vergeleken met ListView kunnen we concluderen dat TableView handmatige toevoeging van items vereist waar dit bij ListView niet het geval is vanwege het ItemSource concept.
- Kun je meer uitleggen over het commando ‘i’ in Xamarin?
Verwachte antwoord: Als we de ViewModels succesvol willen delen tussen Xamarin.Form apps en de Window apps gebruiken we iCommand die geïmplementeerd wordt via een Window klasse.
De iCommando interface is de link tussen BusinessLogic Laag en Presentatie. Laten we proberen om het uit te leggen met een proces voorbeeld.
Als we geen MVVM gebruiken tijdens het schrijven van een app hebben we een evenement handler abonneren nodig, en moeten we dus de UI gemakkelijker beheren gebruikersinteractie (zelfs iets simpels zoals de klik van een gebruiker). Dit maakt een nieuw gecreëerde methode (in C#), en wanneer we dat evenement eenmaal ophalen zal de code in de gecreëerde methode succesvol uitgevoerd worden. Hiermee versterken we de regulatie en View correlatie. De algemene benadering gebruikt unieke objecten (commando’s) die van toepassing zijn op de interface iCommand.
- Wat betekent ‘outofmemoryexception’? Hoe zou je hiermee omgaan?
Verwachte antwoord: De ‘outofmemoryexception’ representeert een bug die we op kunnen merken in het ontwikkelingsproces. Deze bug laat ons weten dat er niet genoeg aan elkaar grenzend geheugen is voor al die allocaties die C# vereist en ook dat er onvoldoende geheugen is in het algemeen.
De optimale oplossing is heap grootte vergroten, i.e., het geheugen van het object dat gebruikt wordt vergroten.
Sommige stappen die je kun uitproberen om dit op te lossen zijn om eerst naar Visual Studio te gaan en die te openen. Daarna het Android project te vinden en daarop te klikken met de rechter muisknop. Daarna zul je Eigenschappen zien en die kiezen, en uiteindelijk kun je daar ervoor kiezen om de heap grootte te vergroten, bijvoorbeeld 1G heap vergroting.
Hoofdzaken en beoordeling van een Xamarin ontwikkelaar
Wanneer je begint met het zoeken naar de beste Xamarin ontwikkelaar, zijn er een paar hoofdzaken om op te letten:
- Aantoonbare kennis van ontwikkeling over meerdere platformen
- Expertise in Visual Studio en C#
- Een goed inzicht in MVVM (Model-View-View-Model)
- Expertise in het hergebruiken van code
- Kennis van Android architectuur
- IoC concepten expertise
- Kennis van afhankelijkheid injectie
Wij vroegen Koray Biçer, een senior software ontwikkelaar, naar wat essentiële dingen die een Xamarin ontwikkelaar moet hebben en hoe deze beoordeeld worden:
"Het is belangrijk om de potentiële kandidaat te vragen naar MVVM, XAML, Views, Page Layouts, Master-Detail Page, en REST Services data retrieving. Een andere manier om de expertise te beoordelen is de ontwikkelaar te vragen een kleine voorbeeld applicatie te schrijven die informatie ophaalt van een remote API en deze weergeeft".
Koray Biçer
Ook Kerem Özcan, een ontwikkelaar van mobiele applicaties, zei:
"De ontwikkelaar moet een goede expertise hebben in OOP, .NET, C# natuurlijk, UX, en de levenscyclus van de applicatie. Bovendien zullen we moeten vragen naar ervaring met Azure, UI-testen en App Center om de vaardigheden te beoordelen. Maar uiteindelijk wil ik ook kijken naar het GitHub account van de kandidaat om meer te weten te komen over de ervaringen en projecten uit het verleden."
Kerem Özcan
Wat onderscheidt een geweldige Xamarin ontwikkelaar van een goede?
Een goede Xamarin ontwikkelaar onderscheidt zich van een goede of gemiddelde ontwikkelaar door kennis van, en ontwikkeling op Xamarin Forms en Xamarin Native. Natuurlijk is het een extra bonuspunt als ze werken met Java, Kotlin, Swift, en C#.
Andere belangrijke troeven van een uitstekende Xamarin ontwikkelaar zijn de ervaring met GraphQL en REST, API's, lambda expressies, LINQ, en asynchroon en reactief programmeren.
Mogelijke uitdagingen tijdens het inhuren van een Xamarin ontwikkelaar
Gewoonlijk moet een ontwikkelaar over aanzienlijke ervaring beschikken om met Xamarin te werken, ondanks de eenvoud factoren van dit platform.
Xamarin gebruikt JavaScript niet direct en gebruikt C# voor dezelfde JavaScript segmenten. Dit is geen grote uitdaging, maar de ontwikkelaar zal een goede expertise nodig hebben en moet latere eventuele complicaties van de hele repository die hierdoor veroorzaakt kunnen worden vermijden.
Het is een mogelijke uitdaging dat een ontwikkelaar sommige bestanden en informatie voor het Xamarin implementatieproces zou kunnen missen. Dit platform is niet oud, maar omdat het in 2011 is uitgebracht, is het enigszins nieuw. Dat is waarom de ontwikkelaar een grote gemeenschap van andere experts moet kunnen raadplegen als hij wat snelle oplossingen nodig heeft voor problemen.
Zoals je hebt gezien in de secties hierboven, is Xamarin populariteit bij een beperkt aantal ontwikkelaars, waardoor de vraag ernaar nog kostbaarder is.
Waarom en wanneer heb je een Xamarin ontwikkelaar nodig?
Je moet een Xamarin ontwikkelaar inhuren als je er klaar voor bent om jouw project naar een hoger niveau te tillen. Het gebruik van Xamarin is voornamelijk voor degenen die code moeten delen en testen over meerdere platformen. Niet alleen dat, maar ook het schrijven van applicaties over meerdere platformen met Visual Studio en C#.
Als je meer dan één app wilt laten ontwikkelen, moet je een ontwikkelaar inhuren voor elk team dat zich met de besturingssystemen bezighoudt. Een andere optie is om een paar ontwikkelaars in te huren die gespecialiseerd zijn in het tegelijkertijd bouwen van apps voor meerdere besturingssystemen.
Opgesomd moet je Xamarin gebruiken voor jouw project, of een Xamarin ontwikkelaar inhuren, als je mobiele apps moet laten bouwen op een eenvoudige, efficiënte manier, met gedeelde codebases. Hiermee krijg je een uitstekend resultaat van UI-elementen die platform-specifiek zijn.
De voordelen van Xamarin
Xamarin is even uniek als dat er vraag naar is, waardoor alle factoren die ermee samenhangen des te boeiender zijn. Dit komt vooral omdat Xamarin snel en efficiënt gebruik van één taal (C#) mogelijk maakt voor het coderen van een app.
Een ander significant voordeel is dat het een uitgebreide library biedt. Voeg hier een uitstekende runtime-omgeving aan toe, en Xamarin lijkt nog aantrekkelijker te worden voor het werk van ontwikkelaars.
Wanneer ontwikkelaars Xamarin gaan gebruiken, hebben ze maar één machine nodig voor alle omgevingen die worden gebruikt.
Wat betreft het besparen van middelen en financiën, werkt Xamarin hiernaartoe door het makkelijke onderhoud en het delen van code. Zo verbruikt bijvoorbeeld native gebruik over meerdere platformen minder geheugen, minder CPU-tijd, loopt het sneller en laadt het meer giant datasets dan Hybrid HTML.
Verder is een ander voordeel van Xamarin de soepele integratie van Azure Cloud. Dit zorgt voor een stabiele en ongelooflijk veilige mobiele backend cloud—een paar simpele coderegels, en dat is alles.
Het gebruik van dit platform maakt het volgende mogelijk:
- Schrijven van apps in C#
- Bouwen van native UIs
- Utiliseren van MVVM ontwerp patronen
- Goede API integratie
- Gedeelde codebase
- Snelle ontwikkeling
- Geen problemen met hardware compatibiliteit
- Goed functioneren op draagbare tech, niet alleen op slechts enkele smartapparaten
- Ontwikkeling over meerdere platformen
- Lage onderhoudskosten
- Een gemeenschap van gebruikers die over de loop van tijd groeit
Ontwikkelaars die graag met Xamarin werken, doen dit met verschillende redenen. Een duidelijke reden is het gebruik van C# wat het proces snel en makkelijk maakt. Dus in plaats van te vertrouwen op Objective-C, Swift, of Java zonder enige speling, kan alles worden voltooid met C#. Biçer zegt verder:
"Ik vind het fijn dat ik alle code kan ontwikkelen met één taal zoals C#. Ik kan de UI ook in één keer ontwikkelen en op alle platforms uitvoeren. Het delen van code tussen platforms is heel eenvoudig, en ik heb minder tijd nodig voor onderhoud van de app".
Bovendien, wanneer de ontwikkelaar Xamarin.Forms gebruikt, bespaart hij tijd door de app tegelijkertijd in verschillende stores uit te brengen.
Een andere belangrijke reden waarom ontwikkelaars de voorkeur geven aan Xamarin is dat de uiteindelijke UI precies zo uitpakt als verwacht – realistisch, vloeiend en voldoenend in gebruik.