Det er mange aspekter og fordeler ved å jobbe med Xamarin, og bruken og populariteten ser ut til å stadig øke. La oss finne ut hvordan dette fungerer, behovet for Xamarin-utviklere, hvordan man finner og intervjuer dem, og hva arbeidet med Xamarin omfatter.
Apputvikling på tvers av plattformer ser ut til å være økende sammenlignet med native app-utvikling. Spesielt i dette tilfellet skyldes det de reduserte kostnadene, og i det lange løp kodedeling og gjenbruk, samt generell funksjonalitet. Xamarin-utviklere er mer etterspurt enn før på grunn av dette.
I vår ansettelsesguide vil du lære mer om denne plattformens popularitet og bruk, utviklerens stilling og forpliktelser, oppgaver, utfordringer, statistikk med mer.
Om Xamarin
Xamarin er en verktøyplattform med åpen kildekode, utgitt i 2011. Den brukes til å lage og bygge effektive applikasjoner for iOS, Windows og Android, alt gjennom programmeringsspråket C#.
Det er et abstraksjonslag som styrer delt kodekommunikasjon med plattformkode, og det kjører i et kontrollert miljø med minneallokering og søppelinnsamlingsfunksjoner.
Med Xamarin kan utviklerne administrere og kommunisere delt kode innenfor en eksisterende plattformkode. For å oppsummere betyr det at alle utviklere kan dele mer eller mindre 90 % av applikasjonene sine til flere plattformer.
Xamarin er natively kompilert, og utviklere foretrekker nesten alltid å bruke dette for å bygge apper med høy ytelse som føles, og ser, native ut.
Med Xamarin kan du bygge native apper for iOS og Android, og native apper for Mac og Windows. Imidlertid kan ikke en utvikler bruke Xamarin for nettbasert distribusjon.
Statistikk om Xamarin
Statistikken om Xamarin byr på generelt gode tilbakemeldinger.
Lønningene til Xamarin-utviklere varierer fra stilling til stilling. En senior programvareingeniør har en årslønn på $120.885, mens en programvareingeniør har $126.942 årlig.
Videre har en fullstack-utvikler en årslønn på gjennomsnittlig $101,929, mens vi ser en mer betydelig økning hos mobilutviklere, med $123,831 årlig.
I en undersøkelse fra Stack Overflow 2021, har Xamarins popularitet som verktøy en prosentandel på 4,17 %, og 43,32 % foretrekker å jobbe med det, mens 56,68 % stort sett unngår å jobbe med Xamarin.
Vi ser at prosentene varierer, men ikke så mye.
Populære merkenavn som er avhengig av bruken av Xamarin
Her er noen merkenavn som bruker Xamarin:
- Storyo Video Story Creator
- Captio: Reise- og utgiftsstyring
- Pinterest: Korktavle for virtuell oppdagelsesmotor
- Fox Sports
- Siemens
- The World Bank: App for undersøkelsesgjennomføring
- Just Giving: Nettbasert innsamlingsplattform
- Insightly: CRM og prosjektledelse
- Olo: Online matbestillingsplattform
- Skulls of the Shogun: Gaming App
- FreshDirect: Matbutikk på nett
- APX: Sporing av miljøverdier
- SuperGiant Games: Konsollspill for mobil
- Thermo Fisher Scientific: Forskning og utvikling
Intervjue en Xamarin-utvikler
Tips til forhåndsscreeningsintervju
En spesialist på talentanskaffelse fokuserer på flere nøkkelfaktorer og avgjørende ting under intervjuet med en Xamarin-utvikler. De stiller spesifikke spørsmål for å vurdere utviklerens erfaring og ekspertise.
I tillegg til å spørre om erfaring og daglig arbeid med Xamarin, fokuserer de på engelskkunnskaper og soft skills gjennom hele intervjuprosessen. Dette får frem samarbeidsevnen og responsevnen til utvikleren, og hvorvidt de kommer til å ha et konstruktivt forhold til kundene.
Tekniske ferdigheter hos en Xamarin-utvikler
En erfaren Xamarin-utvikler må ha erfaring med:
- Å jobbe med C# Xamarin for iOS- og Android-apper
- Ha erfaring med .NET og XAML
- Kjenne til objektorientert programmering
- Bygge apper fra bunnen av og vedlikeholde dem
- Løse app-feil
- Forstå MVC- og MVVM-designmønstre
- Ha erfaring med SQL, Notifications, Ads og Firebase
- Ha erfaring med Microsoft Visual Studio og Xamarin Studio
Ikke-tekniske ferdigheter hos en Xamarin-utvikler
Rekrutterere og spesialister på talentanskaffelse overlapper hverandre i svarene på hvilke ikke-tekniske ferdighetene en Xamarin-utvikler bør ha.
En akseptert norm er at utvikleren viser gode eller over gjennomsnittlige engelskkunnskaper da dette er avgjørende for en konstruktiv kommunikasjon mellom klient og utvikler. Åpenhet for å diskutere stillingen, og porteføljen, er svært nyttig for intervjuet.
Intervjuspørsmål man bør vurdere
Følgende spørsmål er bare noen av de du bør vurdere for vurdering av ferdighetene og ekspertisen til en Xamarin-utvikler under intervjuet. Spør om:
- Hvilke programmeringsspråk støttes av Xamarin?
Forventet svar: Når vi bygger mobilapper med Xamarin. kan vi velge C#, men også Visual Basic.NET og F#.
- Definer Xamarin Profiler.
Forventet svar: Xamarin Profiler representerer et praktisk verktøy for å analysere appen og dens oppførsel. Dette verktøyet ble laget og utgitt av Microsoft. Verktøyet analyserer ikke bare den generelle performative oppførselen til appen, men analyserer også tildelinger av minne til appen. Xamarin Profiler gjør alt det ovennevnte gjennom Visual Studio, og representerer et pent og praktisk grensesnitt for grafikkhåndtering og bygging av apper. Vi må være inne i Visual Studio for å gjøre dette.
Når vi bruker Profiler, får vi mange fordeler, som hvor vi bør kaste unødvendige minnelekkasjer i bestemte objekter.
- Hva kan du si om Xamarin Insights?
Forventet svar: Ved hjelp av verktøyet Xamarin Insights kan vi nøye overvåke og lokalisere/identifisere eventuelle hendelser, statistikk, feil-mønster og problemer i en app. Noen av tingene vi observerer i dette tilfellet vil være sidevisninger, operasjonens lengde, samt problemer med knappetrykk. Alt dette gjøres i sanntid, og vi får tilgang til både tidligere og nåværende økter. I tillegg får vi en grundig innsikt i alle funksjonene i appen som brukes og de som ikke er det.
- Kan du definere ‘data binding’ i Xamarin?
Forventet svar: Som en avgjørende del av MVVM (ModelView-ViewModel) apparkitekturen, ved hjelp av prosessen med 'data binding', kobler vi sammen egenskapene til to separate objekter. På slutten av denne prosessen legger vi merke til hvordan en egenskap gjenspeiler endringene i den andre eiendommen.
Med andre ord kobler vi brukergrensesnittet til appen med dens viste appdata. Forbindelsen er mellom en kilde og et mål. Vi kan finne ut nøyaktig hvilke egenskaper vi kan binde (hvilke som er bindbare) gjennom bruk av Xamarin.Forms.
- Kan du skille mellom Xamarin og Xamarin.Forms?
Forventet svar: Xamarin representerer en plattform, det vil si et verktøy for å utvikle apper som også er åpen kildekode. Med Xamarin kan vi lage apper for Android, iOS og Windows ved å bruke .NET (en åpen kildekode-plattform for appbygging). Gjennom Xamarin kan utviklere enkelt dele nesten alt appinnholdet sitt på flere plattformer, og til og med bruke kun ett språk for å skrive forretningslogikken. Vi kan skrive appene på Mac eller PC, for deretter å kompilere dem i native-app-pakker (disse er .ipa for iOS og .apk for Android).
Xamarin.Forms er et UI-rammeverk som er åpen kildekode, på tvers av plattformer og brukes til å utvikle apper fra bare én kodebase som er delt. Når vi utviklere bruker Xamarin.Forms, plasserer vi koden like bak C#, og vi bruker XAML (Extensible Application Markup Language) for brukergrensesnittene. Den er utmerket for å teste og dele kode, samt dele forretningslogikk på flere plattformer. Det er også bra for å designe på plattformer og dele utformingen av brukergrensesnittet.
- Hva er XAML?
Forventet svar: XAML (Extensible Application Markup Language) representerer et markup-språk som er deklarativt, utrolig nyttig for GUI (Graphical User Interface) beskrivelse, og som viser oss instansieringen umiddelbart, samt utførelse av et objekt. XAML er ofte brukt for å lage brukergrensesnitt for apper.
Med XAML kan vi lage visuelle elementer i UI-komponentene, og det er ikke for likt andre språk for markup-bruk. Flere parter kan jobbe med ulike verktøy samtidig i brukergrensesnittet og applogikken. XAML tillater UI-definering under utviklingen av Xamarin-apper, og det er ikke obligatorisk å bruke for eksempel med Xamarin.Forms.
XAML fungerer med app-arkitekturen MVVM (ModelView-ViewModel)
- Kan du utdype litt rundt Xamarin Live Player?
Forventet svar: Hvis vi ønsker å gjøre live endringer i appen som ikke krever distribusjonskabel eller emulator, og for å få disse endringene vist live, bruker vi et verktøy som heter Xamarin Live Player. Med det blir feilsøking og testing mer praktisk og forenklet, og det fine er at vi ikke trenger å jobbe med en fysisk enhet for hele denne prosessen.
Når du installerer en liten app på enheten, etableres en kommunikasjon mellom utviklingsmaskinen og dens Visual Studio IDE (Integrated Development Environment) som er i maskinen for utvikling.
Oppsummert kan vi utviklere raskt distribuere apper til Android- og iOS-enheter når vi bruker Xamarin Live Player.
- Beskriv ListView og TableView.
Forventet svar: ListView og TableView er kontroller i Xamarin.Forms.
ListView brukes på mange måter dersom vi har lister over data som kan rulles, og denne klassen tilbyr støtte for data binding, så vel som konteksthandlinger. På den annen side, med ListView, er det ingen støtte for å definere XAML-elementer. Det er best når vi bruker ListView for samlinger som bare er en enkelt-type data. ListView presenterer dataene vertikalt stablet.
TableView brukes for å vise lister over data som kan rulles horisontalt, og dette gjelder for de delene av rader som har forskjellige maler og ikke en delt mal. Sammenlignet med ListView konkluderer vi med at TableView krever manuell tillegg av elementer, mens ListView ikke krever dette grunnet ItemSource-konseptet.
- Kan du forklare mer om kommandoen 'i' i Xamarin?
Forventet svar: Hvis vi ønsker å dele ViewModels vellykket mellom Xamarin.Forms-apper og Window-appene, bruker vi iCommand som er implementert gjennom en Window-klasse.
iCommand-grensesnittet er koblingen mellom BusinessLogic-laget og Presentation. La oss prøve å forklare gjennom et prosesseksempel.
Hvis vi ikke bruker en MVVM under appskriving, trenger vi en event handler subscribing, og vi må dermed enklere administrere brukergrensesnittet med brukerens interaksjon (selv noe så enkelt som et klikk fra brukeren). Dette lager en nyopprettingsmetode (i C#), og når vi hever hendelsen, vil koden i den opprettede metoden kjøres vellykket. Med dette styrker vi reguleringen og View-korrelasjonen. Den generelle tilnærmingen bruker unike objekter (kommandoer) som bruker grensesnittet iCommand.
- Hva betyr ‘outofmemoryexception’? Hvordan ville du taklet dette?
Forventet svar: ‘outofmemoryexception’ representerer en feil vi kan legge merke til i utviklingsprosessen. Denne feilen forteller oss at det ikke er nok sammenhengende minne for alle tildelingene som C# krever, og også at det ikke er nok minne generelt.
Den optimale løsningen er å øke heap size, dvs. øke objektenes minne som brukes.
Noen trinn du kan prøve for å løse dette er først å gå til Visual Studio. Finn deretter Android-prosjektet og høyreklikk på det. Etter det vil du se og velge Properties, og der kan du velge å forstørre heap size, for eksempel 1G heap increase.
Det viktigste, og vurderingen av en Xamarin-utvikler
Det er noen viktige ting å se etter når du begynner å lete etter den beste Xamarin-utvikleren:
- Bekreftet kunnskap om utvikling på tvers av plattformer
- Kompetanse innen Visual Studio og C#
- En god forståelse av MVVM (Model-View-View-Model)
- Kompetanse om gjenbruk av kode
- Kunnskap om Android-arkitektur
- IoC-konseptekspertise
- Dependency Injection kunnskap
Vi spurte Koray Biçer, en senior programvareutvikler, om den viktigste kunnskapen en Xamarin-utvikler må ha, og hvordan de vurderer dem:
"Det er viktig å spørre den potensielle kandidaten om MVVM, XAML, Views, Page Layouts, Master-Detail Page og REST Services datainnhenting. En annen måte å vurdere ekspertisen på er å be utvikleren om å skrive en liten prøveapplikasjon som henter informasjon fra et eksternt API og viser det."
Koray Biçer
Kerem Özcan, en mobilapplikasjonsutvikler, sa:
“Utvikleren må ha god kunnskap innen OOP, .NET, C# selvfølgelig, UX og applikasjonslivssyklus. I tillegg må vi spørre etter erfaring med Azure, UI-testing og App Center for å vurdere ferdighetene. Men til slutt vil jeg også se på GitHub-kontoen til kandidaten for å finne ut mer om tidligere erfaringer og prosjekter.”
Kerem Özcan
Hva skiller en dyktig Xamarin-utvikler fra en god en?
En dyktig Xamarin-utvikler skiller seg ut fra en god eller gjennomsnittlig gjennom kunnskap og utvikling på Xamarin Forms og Xamarin Native. Det er selvfølgelig en ekstra bonus for å ha jobbet med Java, Kotlin, Swift og C#.
Andre viktige egenskaper hos en dyktig Xamarin-utvikler, er erfaringen med GRAPHQL og REST, APIer, lambda-uttrykk, LINQ og asynkron og reaktiv programmering.
Potensielle utfordringer under ansettelsesprosessen av an Xamarin-utvikler
Vanligvis må en utvikler ha betydelig erfaring for å jobbe med Xamarin, til tross for enkelheten til denne plattformen.
Xamarin bruker ikke JavaScript direkte, og bruker ellers C# for de samme JavaScript-segmentene. Dette er ingen stor utfordring, men utvikleren må ha god kompetanse for å unngå komplikasjoner for hele depotet senere.
En mulig utfordring her er at en utvikler kan mangle noen filer og informasjon som trengs i Xamarin-implementeringsprosessen. Dette er en ung plattformen, i og med at den ble utgitt i 2011. På grunn av dette må de evne å operere i et stort fellesskap for å konsultere andre eksperter, hvis de trenger raske løsninger på problemer som oppstår.
Som nevnt i avsnittene ovenfor, er Xamarin populær hos et begrenset antall utviklere, noe som gjør etterspørselen mer verdifull.
Når trenger du å ansette en Xamarin-utvikler, og hvorfor?
Du må ansette en Xamarin-utvikler hvis du er klar til å ta prosjektet til et nytt nivå. Bruken av Xamarin er nemlig for de som trenger å dele kode og teste på tvers av plattformer. Ikke bare det, men også skriving av applikasjoner på tvers av plattformer med Visual Studio og C#.
Hvis du vil ha mer enn én app utviklet, må du ansette én utvikler for hvert team som håndterer operativsystemene. Et alternativ er å ansette noen få utviklere som spesialiserer seg på appbygging for flere operativsystemer samtidig.
Oppsummert trenger du en Xamarin-utvikler til prosjektet ditt hvis du trenger å bygge mobilapper på en enkel, effektiv måte, med delte kodebaser. Med Xamarin vil du få et utmerket resultat av UI-elementer som er plattformspesifikke.
Fordeler ved Xamarin
Xamarin er like unikt som det er etterspurt, noe som gjør at alle faktorer knyttet til det er desto mer fengslende. Dette er hovedsakelig fordi Xamarin tillater rask og effektiv enkeltspråkbruk (C#) for koding av en app.
En annen stor fordel er at det tilbyr et rikt bibliotek. Legg til et utmerket kjøretidsmiljø, og Xamarin ser ut til å være enda mer attraktivt for utviklernes arbeid.
Når utviklere begynner å bruke Xamarin, trenger de bare én maskin for å dekke alle miljøer som brukes.
Når det gjelder sparing på ressurser og økonomi, jobber Xamarin mot dette gjennom enkelt vedlikehold og kodedeling. Native bruk på tvers av plattformer bruker for eksempel mindre minne, mindre CPU-tid, kjører raskere og laster inn flere gigantiske datasett enn hybrid HTML.
En annen fordel med Xamarin er den sømløse Azure Cloud-integrasjonen. Dette gir en stabil og utrolig sikker mobil backend-sky–noen få enkle kodelinjer og det er det.
Denne plattformen tillater følgende:
- Skriving av apper i C#
- Bygging av native brukergrensesnitt
- Å benytte MVVM-designmønstre
- God API-integrasjon
- Delt kodebase
- Rask utvikling
- Ingen problemer med maskinvarekompatibilitet
- Fungerer bra på bærbar teknologi også, ikke bare enkelte enheter
- Apputvikling på tvers av plattformer
- Lave vedlikeholdskostnader
- Et brukerfellesskap som stadig øker i omfang
Utviklere som liker å jobbe med Xamarin gjør det av flere grunner. En åpenbar grunn er bruken av C#, som gjør prosessen rask og enkel. I steden for å stole på Objective-C, Swift eller Java, med lite spillerom, kan alt fullføres med C#. Biçer sa videre:
"Jeg liker at jeg kan utvikle all koden med ett enkelt språk som C#. Jeg kan også utvikle brukergrensesnittet bare én gang og kjøre det på alle plattformer. Kodedelingen er veldig enkel mellom plattformer, og jeg trenger mindre tid til vedlikehold av appene”.
Dessuten, når utvikleren bruker Xamarin.Forms sparer de tid ved å kunne slippe apper i forskjellige butikker samtidig.
En annen stor grunn til at utviklere foretrekker Xamarin, er at det endelige brukergrensesnittet blir nøyaktig som forventet-realistisk, jevnt og tilfredsstillende å bruke.