Mobil utviklingsstrategi

I våre dager vil alle selskaper ha sin egen mobil-app. Det være seg de store norske statlige organene eller den lokale sykkelbutikken på hjørnet. Det har for lengst blitt vanlig å bruke uttrykket «There’s an app for that», men trenger vi virkelig egne apper for alt? Det virker som at mange ikke er klar over at man kan ha en meget solid mobil tilstedeværelse uten å ha en egen dedikert app.

Det er i hovedsak tre mulige retninger å gå når man skal legge opp selskapets mobile utviklingsstrategi:

  • Native app
  • Web app
  • Hybrid app

Alle tre variantene har sine styrker og svakheter, og den endelige prislappen på den ferdige appen kan variere kraftig. Det er derfor viktig å gjøre en nøye vurdering før man setter i gang slik at riktig teknologi velges til sitt tilfelle.

Native
Native apper er spesifikke applikasjoner som er kodet i det aktuelle operativsystemets programmeringsspråk. Dette betyr at det må lages egne applikasjoner for iOS, Android, Windows Phone, Blackberry osv, og de fleste krever også egne utviklingsverktøy. Dette krever mye av utvikleren da flere ulike språk må beherskes, men sluttproduktet gir oftest en overlegen kvalitetsfølelse overfor de andre teknologivalgene.

Web
Web apper (også kalt HTML5 apper) benytter seg av standard webteknologier som HTML5, CSS og JavaScript. Dette kan være noe så enkelt som en mobiltilpasset (responsiv) nettside, eller en mer avansert mobilapplikasjon. Kjennetegnet ved slike apper er at utvikleren lager én applikasjon som så kan kjøre på alle plattformer. Teknologien har imidlertid noen begrensninger, spesielt med hensyn til bruk uten internettilgang og innebyggede funksjoner i telefonen (som kamera, akselerometer, enhetens filsystem osv).

Hybrid
Hybride apper forsøker på sin side å tette noe av gapet mellom de to andre teknologiene. Her pakkes en web app inn i et native skall slik at appen likevel kan benytte mange av de innebygde funksjonene som en vanlig web app ikke kan benytte seg av. Fordelen ved dette er at utvikleren kan lage det meste av appens funksjonalitet, layout osv i HTML, CSS og JavaScript. I mange av telefonens innebygde funksjoner finnes det JavaScript-API mot ulike rammeverk. Dersom det ikke er tilgjengelig API må en utvikler kun skrive litt native kode for å koble til de ønskede funksjonene i den aktuelle telefonens operativsystem.

Det har også kommet flere rammeverk som forsøker å kombinere native og hybrid, slik som Xamarin og Titanium. Disse tillater at utvikleren kan skrive applikasjonen i et språk (C# for Xamarin, JavaScript for Titanium) og så kompileres dette til native kode. Dette gjør at en kan gjenbruke mye business-logikk på tvers av applikasjoner, og utvikleren trenger kun å skrive egen UI-kode per plattform. Dersom det opprettholdes en god kodestruktur, sies det at 70-80% av koden kan gjenbrukes på tvers av plattformer.

Valg av strategi
Så hvilken type app passer så best for din tjeneste? Her er noen enkle spørsmål du bør stille deg i forbindelse med valg av teknologi:

  • Krever tjenesten din sikker innlogging?
  • Vil tjenesten ha strenge ytelseskrav?
  • Er det sannsynlig at brukerne dine vil benytte tjenesten uten internettilgang?
  • Skal tjenesten benytte seg av innebygd funksjonalitet i telefonen?
  • Hvilke plattformer bruker majoriteten av brukerne?
  • Hvor stor dekningsgrad er ønsket?
  • Hvor ofte vil hver enkelt bruker benytte seg av tjenesten?

I tillegg må en selvsagt vurdere hvilke plattformer man ønsker at applikasjonen skal være tilgjengelig på. Kakediagrammet under viser markedsandelene til de ulike mobile operativsystemene på verdensbasis pr første kvartal 2014. Som figuren tydelig viser er det Android og iOS som dominerer markedet. Til sammen utgjør de to operativsystemene over 96% av smarttelefonmarkedet i verden i dag. Windows Phone sliter fortsatt med å kapre de store markedene, men har sett en betydelig oppgang den siste tiden. Markedsanalyseselskapet Gartner spår at Windows Phone kan klare å klatre til en markedsandel på opptil 10% i løpet av de neste 4 årene, mye takket være sitt oppkjøp av mobilgiganten Nokia.

 

Mobilbruk

Ser man på Norge for seg selv har iOS 52.93%, Android 44.28%, Windows phone 1.94% og BlackBerry 0,12% av markedet.

Trippelstrategi
For enkelte kan det også være aktuelt å benytte alle 3 utviklingsstrategiene i et og samme prosjekt. I en «proof-of-concept» (POC) fase kan det være hensiktsmessig å raskt få opp basisfunksjonaliteten klart til testing. Ved å gjøre dette ved hjelp av HTML5, CSS og JavaScript åpner det muligheter for hurtige endringer uten behov for å «re-submitte» til diverse app stores. Reelle brukere kan ta i bruk tjenesten gjennom nettleseren på sin mobil, og kan gi mye nyttig tilbakemelding på den utviklede funksjonaliteten.

Når utviklingen så beveger seg forbi den initielle POC-fasen kan arbeidet med å utvikle den faktiske mobile applikasjonen begynne. Utviklerne kan da bruke mye av koden de har utviklet gjennom POC-en til å generere hybride applikasjoner for de ønskede plattformene. Mye brukte rammeverk/verktøy for dette er PhoneGap og Cordova. Disse benytter HTML5, CSDS og JavaScript til å generere en app som kan lastes opp i App Store eller Google Play.

Etter hvert som appen blir lastet ned av flere og flere kan det være at det dukker opp ønskede utvidelser som vil ta i bruk mer av den iboende kraften som ligger i smarttelefoner. Det kan da være ønskelig å gjøre applikasjonen om til en fullblods native app. Mye av designarbeidet og erfaringer gjort i de to foregående utviklingsløpene vil være verdifulle ved utviklingen av native-applikasjonen.

En av de mest benyttede app’ene i dag fulgte nettopp denne utviklingsmodellen; nemlig Facebook. Facebook startet sin mobile tilstedeværelse på https://touch.facebook.com (som faktisk fortsatt eksisterer). Etter dette utviklet de en hybrid-app som lot dem få en solid mobil brukergruppe på de største plattformene uten å måtte investere mye tid og penger i en native applikasjon. Etter nærmere 4 år med en hybrid applikasjon på markedet lanserte de den native applikasjonen de har i dag.

Det ikke dermed sagt at dette er en fremgangsmåte som vil være nødvendig eller passer for alle, men mange kan nok ha nytte av å ta noen stopp på veien før de utvikler en native app. Dette kan spare bedriften for både tid og penger, og mest sannsynlig ende opp med et sluttprodukt som innfrir bedriftens ønsker i størst mulig grad.

Vedlikehold og kompetanse
Jeg har vært inne på det tidligere, men det er svært ulike kostnader knyttet til de tre utviklingsstrategiene; native, hybrid og web. Der native og hybrid krever både spesialkompetanse og ofte egne utviklingslisenser, er de aller fleste web-rammeverk fritt tilgjengelige, og du trenger ikke stort annet enn en teksteditor for å gjøre endringer. Hele prosessen rundt oppgraderinger og opplasting til ulike app stores ender også ofte opp med å være en kostnadsdriver. Spesielt siden det ofte kun er et lite knippe mennesker i selskapet som vet hvordan dette fungerer, og har kompetanse til å bygge og deployere native- eller hybridapplikasjonen. Dessuten finnes det langt flere med god kompetanse innen webutvikling enn det finnes dedikerte app-folk.

Det finnes altså ikke noe enkelt svar på hvilken strategi som er best. I hvert nye tilfelle må alternativene vurderes opp mot hvilke oppgaver det er ønskelig at appen skal løse, og hvor mye bedriften er interessert i å investere.

Petter is a project manager at Visma Consulting with focus on Mobile Solutions. He has held positions as developer, sales manager and project manager in the company since 2007.
Kontakt Petter: