Der er mange aspekter og fordele ved at arbejde med Xamarin, og brugen og populariteten af Xamarin synes at stige. Lad os finde ud af, hvordan det fungerer, hvilket behov der er for Xamarin-udviklere, hvordan man finder og interviewer dem, og hvad det indebærer at arbejde med Xamarin.
Udvikling af apps på tværs af platforme ser ud til at være på vej frem i forhold til udvikling af native apps. I dette tilfælde skyldes det især de reducerede omkostninger i det lange løb, deling og genbrug af kode samt den overordnede funktionalitet. Xamarin-udviklere er i mere betydelig efterspørgsel end tidligere på grund af dette.
I vores komplette ansættelsesguide får du mere at vide om denne platforms popularitet og brug, udviklerens stilling og forpligtelser, opgaver, udfordringer, statistik og meget mere.
Om Xamarin
Xamarin er en værktøjsplatform med åben kildekode, der blev frigivet i 2011. Den bruges til at skabe og opbygge effektive applikationer til iOS, Windows og Android, alt sammen via programmeringssproget C#.
Det er et abstraktionslag, der håndterer kommunikation mellem delt kode og platformskode, og det kører i et kontrolleret miljø med funktioner til hukommelsesallokering og garbage collection features.
Med Xamarin kan udviklerne administrere og videregive delt kode inden for en eksisterende platformskode. Det betyder, at alle udviklere kan dele mere eller mindre 90 % af deres applikationer til flere platforme.
Xamarin er kompileret fra bunden, og udviklere foretrækker næsten altid Xamarin til at bygge apps med høj ydeevne, der føles og ser native ud.
Med Xamarin kan du lave native apps til iOS og Android og native apps til Mac og Windows. Det er dog ikke muligt for en udvikler at bruge Xamarin til web-baseret implementering.
Statistik om Xamarin
Statistikken om Xamarin giver generelt god feedback.
Lønnen for Xamarin-udviklere varierer en smule fra stilling til stilling. En senior softwareingeniør har en årsløn på 120.885 dollars, mens en softwareingeniør har 126.942 dollars årligt.
Desuden har en full stack-udvikler en gennemsnitlig årsløn på $101.929, og vi ser en større stigning i stillingen som mobiludvikler med $123.831 årligt.
I en undersøgelse fra Stack Overflow 2021 har Xamarins popularitet som værktøj en procentdel på 4,17 %, og 43,32 % foretrækker at arbejde med det, mens 56,68 % for det meste undgår at arbejde med det.
Vi kan se, at procentdelene varierer, men ikke alt for meget.
Populære brands, der er afhængige af brugen af Xamarin
Her er nogle af de mange brands, der bruger Xamarin:
- Storyo Video Story Creator
- Captio: Rejse- og udgiftsstyring
- Pinterest: Virtuel discovery engine corkboard
- Fox Sports
- Siemens
- The WOrld Bank: App til surveys
- Just Giving: Platform til online fundraising
- Insightly: CRM og projektstyring
- Olo: Platform til online bestilling af mad
- Skulls of the Shogun: Gaming App
- FreshDirect: Online Food Grocer
- APX: Sporing af miljøaktiver
- SuperGiant Games: Konsolspil til mobil
- Thermo Fisher Scientific: Forskning og udvikling
Interview med en Xamarin-udvikler
Nyttige tips til et interview forud for en screening
En talentspejder fokuserer på flere vigtige faktorer og afgørende ting under interviewet med en Xamarin-udvikler. De stiller specifikke spørgsmål for at vurdere udviklerens erfaring og ekspertise gennem et par ting.
Ud over at spørge om erfaring og det daglige arbejde med Xamarin fokuserer de også på engelskkundskaber og soft skills i hele interviewprocessen. Dette garanterer udviklerens samarbejdsvilje og lydhørhed og bekræfter, at de vil have et uhindret forhold til kunderne.
Tekniske færdigheder hos en Xamarin-udvikler
En erfaren Xamarin-udvikler skal have erfaring med:
- Arbejde med C# Xamarin til iOS- og Android-apps
- Har erfaring med .NET og XAML
- Kendskab til objektorienteret programmering
- Opbygning af apps fra bunden og vedligeholdelse af dem
- Løsning af app-fejl
- Forståelse af MVC- og MVVM-designmønstre
- Har erfaring med SQL, meddelelser, annoncer, Firebase
- Har erfaring med Microsoft Visual Studio og Xamarin Studio
Ikke-tekniske færdigheder hos en Xamarin-udvikler
Rekrutteringsfolk og talentspejdere overlapper hinanden i deres svar, når de bliver spurgt om de ikke-tekniske færdigheder hos en Xamarin-udvikler.
Det er normalt, at udvikleren skal have betydelige engelskkundskaber over gennemsnittet, da dette er afgørende for, at kommunikationen mellem kunden og udvikleren kan foregå uden hindringer. Synlig kommunikativitet og åbenhed over for at drøfte jobbet og porteføljen er meget nyttige for den samlede samtale.
Spørgsmål som du kan bruge ved et Xamarin-interview
De følgende spørgsmål er blot nogle af de mange spørgsmål, der er gode at overveje til vurdering af en Xamarin-udviklers færdigheder og ekspertise under interviewet. Spørg om:
- Hvilke programmeringssprog understøttes af Xamarin?
Forventet svar: Med Xamarin kan vi vælge C#, men også Visual Basic.NET og F#, når vi laver mobilapps.
- Definer Xamarin Profiler.
Forventet svar: Xamarin Profiles er et praktisk værktøj til analyse af appen og dens adfærd. Dette værktøj blev oprettet og frigivet af Microsoft. Dette værktøj analyserer ikke blot appens overordnede performative adfærd, men analyserer også appens allokeringer af hukommelse. Xamarin Profiler gør alt det ovennævnte gennem Visual Studio og repræsenterer en pæn og praktisk grænseflade til grafisk håndtering og opbygning af apps. Vi skal være inde i Visual Studio for at gøre dette.
Når vi bruger Profiler, får vi mange fordele, f.eks. hvor vi skal fjerne unødvendige hukommelseslækager inden for bestemte objekter.
- Hvad kan du sige om Xamarin Insights?
Forventet svar: Ved hjælp af værktøjet Xamarin Insights kan vi nøje overvåge og identificere begivenheder, statistik, fejlmønstre og problemer i en app. Nogle af de ting, vi observerer i dette tilfælde, er sidevisninger, operationers længde samt problemer med knapberøring. Alt dette sker i realtid, og vi får adgang til både tidligere og nuværende sessioner. Derudover får vi et dybdegående indblik i alle de funktioner i appen, der bliver brugt, og dem der ikke bliver brugt.
- Kan du definere "data binding" i Xamarin?
Forventet svar: Som en vigtig del af MVVM (ModelView-ViewModel)-app-arkitekturen forbinder eller linker vi egenskaberne for to separate objekter med processen "data binding", og ved slutningen af denne proces kan vi se, hvordan den ene egenskab afspejler ændringerne i den anden egenskab.
Med andre ord forbinder vi appens brugergrænseflade med de viste appdata. Forbindelsen er mellem en kilde og et mål. Vi kan finde ud af, hvilke egenskaber vi præcist kan binde (hvilke egenskaber der kan bindes) ved hjælp af Xamarin.Forms.
- Kan du skelne mellem Xamarin og Xamarin.Forms?
Forventet svar: Xamarin er en platform, dvs. et værktøj til udvikling af apps, som også er open source. Med Xamarin kan vi lave apps til Android, iOS og Windows ved hjælp af .NET (en open source-platform til app-udvikling). Via Xamarin kan udviklerne nemt dele næsten alt deres app-indhold på flere platforme og endda bruge ét sprog til at skrive forretningslogikken. Vi kan skrive apps på Mac eller pc, og det følgende trin er at kompilere dem i native-app-pakker (disse er .ipa for iOS og .apk for Android).
Xamarin.Forms er et framework for brugergrænseflader, der er open source, tværplatform og bruges til at udvikle apps fra én fælles kodebase. Når vi udviklere bruger Xamarin.Forms, placerer vi koden lige bag C#, og vi bruger XAML (Extensible Application Markup Language) til brugergrænsefladerne. Det er fremragende til test og deling af kode samt til deling af forretningslogik på flere platforme. Det er også godt til at designe på platforme og dele layoutet af brugergrænsefladen.
- Hvad er XAML?
Forventet svar: XAML (Extensible Application Markup Language) er et markup-sprog, der er deklarativt, utroligt nyttigt til beskrivelse af GUI (Graphical User Interface), og det viser os straks oprettelsen og udførelsen af et objekt. XAML er også meget anvendt til at skabe brugergrænseflader i apps.
Med XAML kan vi lave visuelle elementer i brugergrænsefladekomponenterne, og det ligner ikke andre sprog til brug af markup alt for meget. Flere parter kan arbejde med forskellige værktøjer samtidig i UI og app-logikken. XAML gør det muligt at definere UI under udviklingen af Xamarin-apps, og det er ikke obligatorisk at bruge med Xamarin.Forms, for eksempel.
XAML arbejder med app-arkitekturen MVVM (ModelView-ViewModel)
- Fortæl om Xamarin Live Player.
Forventet svar: Hvis vi ønsker at foretage live-ændringer i appen, som ikke kræver et implementeringskabel eller en emulator, og for at få disse ændringer vist live, bruger vi et værktøj ved navn Xamarin Live Player. Med det bliver debugging og test også mere praktisk og forenklet, og det gode er, at vi ikke behøver at arbejde med en fysisk enhed til hele denne proces.
Når en lille app installeres på enheden, etableres der en kommunikation mellem udviklingsmaskinen og dens Visual Studio IDE (Integrated Development Environment), som er indeholdt i maskinen og som bruges til udvikling.
Sammenfattende kan vi udviklere hurtigt implementere apps til Android- og iOS-enheder, når vi bruger Xamarin Live Player.
- Beskriv ListView og TableView.
Forventet svar: ListView og TableView er kontrolelementer i Xamarin.Forms.
ListView bruges på mange måder, men kun hvis vi har lister med data, der kan scrolles, og denne klasse understøtter databinding samt konteksthandlinger. På den anden side er der med ListView ingen understøttelse af XAML items defining. Det er bedst, kun at bruge ListView til samlinger, der kun er en enkelt type data. ListView præsenterer dataene vertikalt stacked.
TableView bruges til visning af lister med data, der kan scrolles vandret, og dette gælder for de sektioner af rækker, der har forskellige skabeloner og ikke en fælles skabelon. Sammenlignet med ListView konkluderer vi, at TableView kræver manuel tilføjelse af elementer, mens ListView ikke kræver dette på grund af ItemSource-konceptet.
- Kan du forklare mere om kommandoen "i" i Xamarin?
Forventet svar: Hvis vi ønsker at dele ViewModels mellem Xamarin.Forms-apps og Window-apps, bruger vi iCommand, der er implementeret gennem en Window-klasse.
iCommand-grænsefladen er forbindelsen mellem BusinessLogic-laget og præsentation. Lad os prøve at forklare det ved hjælp af et proceseksempel.
Hvis vi ikke bruger en MVVM under app-skrivning, har vi brug for en event handler subscribing, og vi har brug for at gøre det nemmere at styre brugergrænsefladen med brugerens interaktion (selv noget så simpelt som et klik fra brugeren). Dette laver en newly create method (i C#), og når vi starter eventet, vil koden i den oprettede metode blive eksekveret. Med dette styrker vi reguleringen og View korrelationen. Den overordnede tilgang bruger unikke objekter (kommandoer), som anvender grænsefladen iCommand.
- Hvad betyder "outofmemoryexception"? Hvordan vil du håndtere dette?
Forventet svar: Outofmemoryexceptionen repræsenterer en fejl, som vi kan opdage i udviklingsprocessen. Denne fejl fortæller os, at der ikke er tilstrækkelig sammenhængende hukommelse til alle de allokeringer, som C# kræver, og at der generelt ikke er tilstrækkelig hukommelse.
Den optimale løsning er at øge heapstørrelsen, dvs. at øge den hukommelse, der bruges til de objekter, der anvendes.
For at løse dette, kan du først prøve at gå til Visual Studio og åbne det. Find derefter Android-projektet, og højreklik på det. Derefter skal du vælge Egenskaber, og endelig kan du der vælge at forstørre heapstørrelsen, for eksempel 1G heapforøgelse.
Grundlæggende krav til og vurdering af en Xamarin-udvikler
Når du begynder at lede efter den bedste Xamarin-udvikler, er der nogle vigtige ting, du skal kigge efter:
- Bekræftet kendskab til udvikling på tværs af platforme
- Ekspertise i Visual Studio og C#
- En god forståelse af MVVM (Model-View-View-Model)
- Ekspertise i genanvendelighed af kode
- Viden om Android-arkitektur
- IoC-koncepter ekspertise
- Viden om dependency injection
Vi spurgte Koray Biçer, en senior softwareudvikler, om de vigtigste forudsætninger, som en Xamarin-udvikler skal have, og hvordan de vurderer dem:
"Det er vigtigt at spørge den potentielle kandidat om MVVM, XAML, Views, Page Layouts, Master-Detail Page og REST Services datahentning. En anden måde at vurdere ekspertisen på er at bede udvikleren om at skrive en lille prøveapplikation, der henter oplysninger fra et fjern-API og viser dem".
Koray Biçer
Kerem Özcan, en udvikler af mobilapplikationer, sagde også:
"Udvikleren skal have god ekspertise inden for OOP, .NET, C# naturligvis, UX og applikationslivscyklus. Derudover skal vi spørge ind til erfaring med Azure, UI-test og App Center for at vurdere kompetencerne. Men i sidste ende vil jeg også gerne kigge på kandidatens GitHub-konto for at finde ud af mere om tidligere erfaringer og projekter."
Kerem Özcan
Hvad adskiller en god Xamarin-udvikler fra en fantastisk udvikler?
En god Xamarin-udvikler skiller sig ud fra en god eller gennemsnitlig udvikler ved hjælp af viden om og udvikling af Xamarin Forms og Xamarin Native. Selvfølgelig er det et ekstra bonuspoint at arbejde med Java, Kotlin, Swift og C#.
Andre vigtige aktiver hos en fremragende Xamarin-udvikler er erfaring med GraphQL og REST, API'er, lambdaudtryk, LINQ samt asynkron og reaktiv programmering.
Mulige udfordringer i forbindelse med ansættelse af en Xamarin-udvikler
Normalt skal en udvikler have stor erfaring for at arbejde med Xamarin på trods af platformens enkelhed.
Xamarin bruger ikke JavaScript direkte og bruger ellers C# til de samme JavaScript-segmenter. Dette er ikke nogen stor udfordring, men udvikleren skal have god ekspertise for at undgå komplikationer i hele repository senere hen på grund af dette.
Den potentielle udfordring er, at en udvikler kan mangle nogle filer og oplysninger til Xamarin-implementeringsprocessen. Denne platform er ikke gammel, men da den blev udgivet i 2011, er den derimod nyere. Hvis udvikleren har brug for nogle hurtige løsninger på problemer, skal han/hun derfor gå ind i et stort fællesskab for at rådføre sig med andre eksperter.
Som det fremgår af ovenstående afsnit, er Xamarin populær blandt et begrænset antal udviklere, hvilket gør efterspørgslen efter Xamarin større.
Hvorfor og hvornår skal du ansætte en Xamarin-udvikler?
Du skal hyre en Xamarin-udvikler, hvis du er klar til at tage dit projekt til et nyt niveau. Brugen af Xamarin er nemlig for dem, der har brug for at dele kode og teste på tværs af platforme. Og ikke kun det, men også at skrive applikationer af cross-platform type med Visual Studio og C#.
Hvis du vil have udviklet mere end én app, skal du ansætte en udvikler for hvert team, der håndterer styresystemerne. En anden mulighed er at ansætte et par udviklere, der er specialiseret i app-udvikling til flere styresystemer på én gang.
Kort sagt skal du bruge Xamarin til dit projekt eller hyre en Xamarin-udvikler, hvis du har brug for at bygge mobilapps på en enkel og effektiv måde med delte kodebaser. Med det vil du få et fremragende resultat af UI-elementer, der er platformsspecifikke.
Fordele ved Xamarin
Xamarin er lige så unik som den er efterspurgt, hvilket gør alle faktorer i forbindelse med Xamarin endnu mere fascinerende. Dette skyldes primært, at Xamarin giver mulighed for hurtig og effektiv brug af et enkelt sprog (C#) til kodning af en app.
En anden væsentlig fordel er, at det har et rigt bibliotek. Tilføj et fremragende runtime-miljø, og Xamarin ser ud til at være endnu mere attraktivt for udviklernes arbejde.
Når udviklere begynder at bruge Xamarin, har de kun brug for én maskine til at dække alle de anvendte miljøer.
Med hensyn til at spare på ressourcer og økonomi arbejder Xamarin i denne retning gennem nem vedligeholdelse og kodedeling. For eksempel bruger cross-platform native usage mindre hukommelse, mindre CPU-tid, kører hurtigere og indlæser flere gigantiske datasæt end Hybrid HTML.
En anden fordel ved Xamarin er den glatte Azure Cloud-integration. Dette giver en stabil og utrolig sikker mobil backend cloud - et par enkle kodelinjer, og det er det hele.
Ved at bruge denne platform kan du gøre følgende:
- Kodning af apps i C#
- Opbygning af native brugerflader
- Anvendelse af MVVM-designmønstre
- God API-integration
- Fælles kodebase
- Hurtig udvikling
- Ingen problemer med kompatibilitet med hardware
- Fungerer også godt på wearable tech, ikke kun på nogle smart devices
- Udvikling af apps på tværs af platforme
- Lave vedligeholdelsesomkostninger
- Et fællesskab af brugere, der vokser over tid
Udviklere, der kan lide at arbejde med Xamarin, kan lide det af flere grunde. En indlysende grund er brugen af C#, som gør processen hurtig og nem. Så i stedet for at være afhængig af Objective-C, Swift eller Java uden noget spillerum, kan alting klares med C#. Biçer sagde yderligere:
"Jeg kan godt lide, at jeg kan udvikle al koden med et enkelt sprog som C#. Jeg kan også udvikle brugergrænsefladen på én gang og køre den på alle platforme. Det er meget nemt at dele kode mellem platforme, og jeg har brug for mindre tid til vedligeholdelse af appen".
Når udvikleren bruger Xamarin.Forms, sparer de desuden tid ved at frigive appen i forskellige stores på samme tid.
En anden vigtig grund til, at udviklere foretrækker Xamarin, er, at den endelige brugerflade bliver præcis som forventet-realistisk, smooth og tilfredsstillende at bruge.