Kategorier

Visit Norway samler sine mobilapper på én plattform

Utvikling og vedlikehold av apper anses av mange som en kostbar affære. Men de flestes kostnader er minst dobbelt så høye som de trenger å være.

  • 10. november 2013

    Postet av Kolbjørn Bredrup
  • Kommentar ikon  3

Utvikling og vedlikehold av apper anses av mange som en kostbar affære. Det kan vi forstå. Hovedproblemet er at utviklingen av apper til de tre store (iPhone, Android og Windows Phone) gjøres i forskjellige programmeringsspråk (hhv Objective-C, Java og C#). Dermed må man implementerere samme funksjonalitet i forskjellige språk for hver plattform man ønsker å støtte, og de fleste vil jo støtte mer enn én plattform. Etter lansering må hver versjon vedlikeholdes for seg, og dette gjøres vanligvis av forskjellige team siden de fleste utviklere kun kan ett språk.

Men det er faktisk helt unødvendig.

For 3,5 år siden skrev jeg et blogginnlegg om forskjellen på Objective-C og C#, og argumenterte for at utviklingshastigheten ved bruk av C# er adskillig bedre enn ved Objective-C.  De viktigste grunnene er at C# er raskere å skrive, verktøyene er bedre, språket er selv i raskere utvikling og rammeverkene mer modne.

Siden den gang har vi fått det strålende rammeverket Xamarin (se http://xamarin.com) som gjør det mulig å utvikle iPhone- og Android-apper i C#.  Dermed kan vi lage apper for iPhone, Android og Windows Phone i ett programmeringsspråk, i stedet for å måtte bruke tre forskjellige språk som tidligere. Dermed er det mulig å dele kode mellom plattformene og unngå å kode all funksjonliatet tre ganger. Dermed leverer vi verdien på mye kortere tid. Lykke!

Visit Norway og konvertering
Visit Norway hadde fra før en app for iPhone (se iTunes) og en app for Android (se Google Play) . I våres tok Creuna over utviklingen av www.vistnorway.com, og i samarbeid med Creuna tok Nimble over utviklingen av appene for begge plattformer.

iPhone-appen til Visit Norway var kodet i Objective-C, og det første vi satte i gang med var å konvertere den til C#,og å få den eksisterende funksjonaliteten til å kjøre med C# / Xamarin.

Litt konvertering-tech
Alt det grafiske kan man kopiere rett over, siden Xamarin bruker xib-filer og bildefiler på samme måte som man gjør med Objective-C. Så det grafiske går lett å konvertere.

Konverteringen av Objective-C kode til C# er litt mer utfordrende. Det finnes dessverre ikke noen veldig gode verktøy for dette, det beste jeg fant var Automagical (som er laget av en slovensk student), som i det minste gjøre en syntaktisk konvertering av Objective-C til C#.

Etter at vi brukte den til den syntaktiske konverteringen endte vi opp med rundt 4000 kompileringsfeil. De fleste feilene skyldtes at Xamarin og Objective-C har litt forskjellige navn på klassene og metodene som finnes i iOS-rammeverket, så vi laget et lite program som fikset de fleste av disse og andre syntaktiske forskjeller. Så gikk vi manuelt gjennom alle kodefiler og skrev om det som trengtes. Dette var jo kode vi akkurat hadde tatt over, så denne gjennomgangen gjorde også at vi ble godt kjent med koden og fikk bra oversikt.

ROI og tall
Vi konverterte ca 13 000 kodelinjer, 16 xib-filer og en haug med bilder. Konverteringen av koden, kodingen av ekstra konverteringsprogram  og nødvendig omskriving for å få appen til å kjøre på samme måte som den gjorde før, tok tilsammen ca 125 timer.

Første oppgave etter konvertering var å legge til en modul for å gi oversikt over Nasjonale Turistveger i appen.  Basert på tidligere timeestimater for denne utviklingen i Objective-C i forhold til C#, anslår vi at ROI for konverteringsjobben nesten er oppnådd allerede ved timene som er spart ved implementeringen av denne ene modulen.

Vi holder nå på med å konvertere Android-versjonen, og vi ser at bare ved å kunne ta i bruk den videreutviklede koden laget for iPhone – som nå er konvertert – har vi spart inn Android-videreutvikling for en større sum enn konverteringen koster.

Andre fordeler

Andre fordeler som vil gi stadig økt ROI for Visit Norway er blant annet:

  • Vi har nå bare ett team, noe som gir mindre tid på kommunikasjon, færre overleveringer og mindre waste. Samme utvikler kan jobbe med både Android- og iPhone-versjon.
  • Videreutvikling i én kodebase med  ca 60% felles kode på tvers av plattformer gjør at en endring kan kodes ett sted og benyttes på alle plattformer.
  • Verktøy og språket er mer effektivt, og hver utvikler leverer større verdi per brukt time.
3 kommentarer
  • Sutri
    10. september 2014

    Nice article!I elilcpasey enjoyed reading the information in section 2 about creating a mobile app and marketing it properly. One thing I have been coming across is that small businesses and large alike all seem to think that they must have a mobile app. But, the real question to ask them is why do they need it? What do they plan on using it for. Sometimes, it seems that we are replacing our wallets filled with loyalty cards and coupons with digital wallets. I think that businesses need to focus on other ways to create a mobile presence in order to interact with users. I know I have several pages of apps and don’t often use half of them. Businesses should start thinking about ways to consolidate them and come up with new solutions.

Beklager, kommentarfeltet er stengt.