3 minutter lesetid

Mobilutvikling med Xamarin

02. jun 2020

Xamarin er et rammeverk eid av Microsoft som brukes til å utvikle mobilapplikasjoner som kan kjøre på tre ulike plattformer; både iOS, Android og Windows. Et såkalt kryssplattform-rammeverk. Denne artikkelen vil forklare forskjellen på native apper og kryssplattform-apper, og deretter gå nærmere inn på hva Xamarin er, og hvordan apper utvikles med dette rammeverket.

Mobilutvikling med Xamarin

Native vs Kryssplattform?

Skal du utvikle app i Norge så er det greit å vite at  99.8% av mobilbrukerne enten har iOS eller Android-operativsystem. Under 1% har Windows, Blackberry eller Samsung, som har egne operativsystemer, henholdsvis Windows Phone, BlackBerry OS og Tizen OS. Når du skal utvikle en app må du i utgangspunktet lage en app per operativsystem, og fordi de aller fleste brukere har iOS eller Android, er det gjerne disse operativsystemene som blir prioritert.

Native apper

Apper som er utviklet for ett spesifikt mobil-operativsystem kalles native apper. iOS-apper er gjerne utviklet med Swift eller Objective-C, mens i Android-verden jobber man med Kotlin eller Java. Fordelen med native utvikling, er at appen kan utvikles optimalisert for akkurat det systemet, både med tanke på UI og ytelse. Ulempen er at man må utvikle to separate apper for å støtte to ulike operativsystemer.

Kryssplattform

Kryssplattform-teknologi lar oss utvikle apper som kan kjøre på flere operativsystemer, ved å kompilere, eller oversette, felles kode til et språk som det aktuelle operativsystemet forstår og kan kjøre. Tidligere var du nødt til å lage en mobil-app per plattform, men kryssplattform-teknologi utvikles raskt og er blitt veldig populært, mye fordi budsjett ofte blir en utfordring når en skal gå for native apps.

Kryssplattform-apper er både kost- og tidsbesparende fordi kode gjenbrukes på tvers av plattformer. Av samme grunn forenkles også vedlikehold betraktelig, og det vil kreve mindre å holde appens funksjonalitet og brukergrensesnitt konsistent.

Xamarin

Xamarin ble lansert som et uavhengig kryssplattform-rammeverk for apputvikling i 2011, og ble kjøpt opp av Microsoft i 2016 - som gir teknologien mer kredibilitet og troverdighet. Xamarin er veldig godt dokumentert, har over 60 000 bidragsytere fra mer enn 3700 selskaper, og er blant de mest populære kryssplattform-teknologiene for apputvikling.

Xamarin gir ca. 90% delt kode på tvers av plattformene

Med Xamarin kan en utvikle kraftige og skalerbare apper til iOS og Android samtidig (du kan legge til støtte for Windows også, men med noe begrensede muligheter). Det meste av applikasjonens backend kan gjenbrukes, og dersom du i tillegg velger å inkludere et rammeverk kalt Xamarin.Forms kan også størsteparten av applikasjonens brukergrensesnitt (UI) brukes på tvers av plattformer.

All kode kan forøvrig ikke deles. Noen UI-elementer trenger plattform-spesifikk kode for å rendre, og for å kunne dra full nytte av mobilens funksjoner, som kamera, GPS, filer, kompass, kontaktliste osv. er vi nødt til å ha noe spesifikk kode per plattform. Men for en "vanlig" app vil dette utgjøre mindre enn 10%. Med andre ord vil vi spare mye tid og penger sammenlignet med å utvikle to separate apper.

Det føles native

Dersom du har prøvd apper både en iOS- og en Android-telefon har du sikkert lagt merke til at navigasjon og ulike UI-elementer, for eksempel en dato-velger, ser helt forskjellige ut på de to plattformene. Vi sier at de har et native utseende - tilpasset sin plattform.

Ved utviklingen av en ny app, ønsker vi at appen skal være konsistent på tvers av plattformer - brukere skal kjenne igjen at det er samme app både på iOS og Android, men samtidig vil vi ivareta plattformers native utseende slik at brukerne lettere lærer seg å bruke appen. Navigasjon og valg er slik som de forventer at det skal være.

Tross delt kode vil Xamarin-apper også føles native, fordi den felles kodebasen kompileres, eller oversettes, til de ulike plattformene.

.NET og C#

Xamarin-apper utvikles med .NET og C#. Det er en kjempefordel for selskaper som XLENT, som jobber med C# i andre web- og API-prosjekter også. Vi har altså svært dyktige programmerere som vanligvis jobber med andre type prosjekter, men som kan steppe inn når det trengs, og bidra på store deler av appens "stack".

Testing og integrasjon med andre veletablerte Microsoft-verktøy

I utviklings-prosessen testes appen kontinuerlig på simulatorer, emulatorer og tilgjengelige mobilenheter. Det er veldig viktig å teste appen på ulike skjermstørrelser, samt ulike versjoner av operativsystemer. En app som ser bra ut på iPhone 8 Plus, ser ikke nødvendigvis bra ut på den mye mindre SE-iPhonen, og en funksjon som fungerer som smurt på nyeste iPhone 11 Pro, bør også testes på iPhone 6 fordi denne vil ha en eldre versjon av operativsystemet (iPhone 6 og eldre iPhoner vil ikke kunne oppdatere operativsystemet videre enn iOS 12).

Heldigvis har vi gode test-verktøy, og Xamarin-apper er godt integrert med andre nyttige Microsoft-verktøy. Visual Studio App Center er et godt eksempel. Her kan all analyse, diagnostistikk og distribuering, både til test-brukere og til App Store / Google Play, samles på et sted. Hvor mange bruker appen på månedlig basis? Ukentlig? Har brukere opplevd app-krasj den siste tiden? I så fall, hvilken type telefon krasjet og hvilken versjon av operativsystemet kjørte den? Dette er alle ting du vil få vite gjennom App Center - et supert verktøy både for utviklere og kunder som er nysgjerrige på appens status.

Kari Skjold

Skrevet av Kari Skjold

Senior systemutvikler

Innlegg

Abonner på bloggen vår