Hopp til navigasjon Hopp til innhold
Andreas Finstad avslører hvordan han ble app-utvikler, og hva som kreves. (Ill.: Andreas Finstad)
BLOGG

Hemmelighetene til en app-utvikler

Har du alltid lurt på å starte selv? Les dette.

Første av to deler.

Jeg, en app-utvikler
Noen har et inntrykk av at det nesten bare er å lage en Powerpoint-presentasjon, men å lage en app er litt mer komplisert enn som så. Hvem som helst kan gjøre det i teorien, men det krever at man lærer seg å programmere og det er ikke som å sykle.

Man må programmere hele tiden, om ikke glemmer man mestringen fort.

Som fire-barns far med full jobb til daglig, så skjer utviklingen mest sent på kvelden eller natta. Selvsagt hender det at jeg plutselig får en ide og da jeg sette meg å teste ut denne med det samme. Eller dersom det er et problem som gjør at appen krasjer, må jeg ta meg av dette så fort som mulig.

Jeg har heldigvis en veldig tålmodig samboer og barn, men jeg vet at de noen ganger ønsker både meg og den «appen min» dit pepper’n gror.

Jeg har jobbet med appen min «nRadio» i snart ett år og den gjør det veldig bra for tiden: Den er lastet ned nesten 16.000 ganger siden 5. desember, har vær rangert i App Store i 34 land og ligget på 5. plass i Brasil i kategorien musikk-app-er for iPhone.

Xcode
Men la oss gå litt tilbake i tid fra før appen kunne lastes opp til App Store. Det gikk nemlig ikke lang tid fra jeg kjøpte min første iPhone, til at jeg lastet ned XCode som må til for å kode apper til iOS.

Jeg skjønte dog fort at det jeg hadde med meg fra å ha fiklet litt med Microsoft Visual Basic ikke var mye til bagasje for å begi seg ut på veien med objektorientert C.

Jeg gikk dermed til innkjøp av bøker. Den første, «Beginning iPhone 3 Development», rakk jeg akkurat å starte på før iOS 4 kom, men med hver versjon av iOS gjorde de akkurat nok endringer med XCode at jeg følte at jeg måtte starte på nytt hver gang.

Apple Swift
Jeg holdt egentlig på å gi opp, men interessen våknet litt igjen da Swift ble introdusert i 2014. Swift er det nye programmeringsspråket fra Apple som ligner mer på Visual Basic og C#. Dette syntes jeg var litt mer lettfattelig og kom i gang igjen.

Etterhvert kjente jeg at jeg kanskje var moden for å prøve å få et ferdig produkt ut på App Store. Problemet var bare at uttrykket «There is an app for that…» stemmer så alt for godt! For det finnes faktisk en app for nesten hva som helst fra før. Fra å finne nærmeste toalett, til spill der du skal klemme så mange kviser som mulig…

Jeg hadde lenge lekt litt med tanken på å lage en handleliste, men de var det mange av og det var ikke noe problem å finne en som gjorde det jeg hadde tenkt ut, og en god del mer. Dermed sluknet gløden litt igjen.

Det gikk enda et år hvor jeg irriterte meg over å betale for utvikler-abonnement hos Apple, men samtidig ville jeg ikke gi helt slipp på tanken om at jeg kanskje skulle få til noe en dag.

Radio…? Radio!
Plutselig en dag satt jeg og søkte på App Store etter en radio-app. Jeg har aldri egentlig funnet en radio-app jeg var fornøyd med. Det gjorde jeg ikke da heller.

Tanken slo meg: «Hvor vanskelig kan det egentlig være å lage en sånn app da?!» (Ikke overraskende: Det viste seg at det var mye vanskeligere enn jeg trodde, men det kommer jeg tilbake til).

Jeg bestemte meg der og da for at jeg skulle lage en Radioapp med norske radiokanaler – appen skulle hete «nRadio» der n-en stod for «Norsk».

Valg av kanaler og kontroller skulle ta minst mulig plass, slik at det var mulig å vise informasjon om hva som spilte, og evt. albumbilder.

Jeg hadde notert meg ting som manglet og/eller jeg savnet i andre apper og bestemte meg for at min radio skulle oppfylle alle disse kriteriene:

  • Kunne fortsette å spille når man byttet app
  • Skulle stoppe dersom telefonen ringte for så å starte etter at samtalen var ferdig.
  • Skulle vise informasjon om hva som spilte og evt. Et album-bilde dersom det var musikk
  • Vise spilleinformasjon på «Låst-skjermen» og også stoppe starte stasjoner derifra.
  • Kunne koble opp og spille via Airplay og vise den samme informasjonen på AppleTV
  • Reagere på pause/play fra fjernkontroll på headsett, AppleTV og Bilstereo
  • Mulighet for å bestemme bakgrunn i appen selv
  • Legge inn egne radiostasjoner dersom man hadde URL
  • Fjerne/skjule stasjoner man ikke brukte
  • Fungere både i stående og liggende modus
  • Virke både på iPhone, iPad og iPad
  • Ingen dvale på skjerm, i allefall ikke så lenge den var tilkoblet strømkilde
  • Advarsel ved bytting i mellom trådløst nett og mobilnett, slik at man ikke skulle få utilsiktet databruk
  • Enkelt grensesnitt, men fremdeles pent å se på
  • Klokkealarm som fungerte selv om appen ikke var aktiv

Starten
Jeg lastet ned nyeste versjon av XCode og satte igang.

Den første dagen gikk med til å finne ut hvordan starte og stoppe avspilling av en radiokanal og ikke minst finne URL-ene til radiostasjoner.

Jeg var veldig fornøyd med meg selv da jeg hadde snekret sammen en app med helt hvit bakgrunn og en enslig knapp som spilte P4 dersom man trykket på den og som stoppet igjen ved neste trykk.

Neste utfordring var; hvordan skulle man kunne velge stasjon man ønsket å spille? Jeg ville ha et bilde i appen, så derfor måtte ikke dette ta opp all plassen. Andre radio-apper hadde hver radiokanal som en knapp: Enten direkte i skjermbildet eller i en tabell man kunne bla i. Jeg syntes dette tok opp unødvendig mye skjermareal.

Da fikk jeg ideen om å bruke et «UIPickerView». Det er den kontrollen som viser verdier i et hjul du kan rulle opp og ned. Dermed kunne det inneholde mange stasjoner og samtidig ikke bruke opp all plassen i grensesnittet. Med dette avklart startet jobben med å finne UR-er til norske radiostasjoner. Fant en side på nett som hadde oversikt over det.

Jeg hadde nå en funksjonell app, der man enkelt kunne velge i mellom norske radiostasjoner, starte og stoppe stasjonen og justere volum med en egen glidebryter.

Metadata
Men, hvordan hentet man ut informasjon om lydstrømmen? Etter en del hjelp av min venn Google, fant jeg ut at det var en egen funksjon for å hente ut metadata fra en audiofil/strøm og det var med stor glede jeg kunne konstatere at det nå dukket opp informasjon som jeg kunne presentere i et tekstfelt.

Gleden ble derimot kortvarig, da jeg etter hvert oppdaget at Æ, Ø og Å ikke vises korrekt og det at er forbausende ofte disse bokstavene brukes i blant annet NRKs sendinger. Etter mer iherdig Googling, prøving og feiling, fikk jeg bukt med dette problemet også. Det tok bare et par dager…

Noen få stasjoner var også så vennlige, at de i sine metadata sendte ut URL til et bilde av den spillende artistens album, så da kunne jeg få tak i og vise dette også!

Nå måtte jeg prøve å få inn funksjonalitet for å legge inn stasjoner manuelt. Etter en del tenking, kom jeg frem til at dette ikke lot seg gjøre i samme skjermbilde og appen fikk skjermbilde nr. 2.

I dette skjermbildet laget jeg en tabell som viste alle stasjonene jeg hadde lagt inn, med mulighet for å fjerne og legge inn stasjoner pluss en knapp for å gjenopprette stasjonslisten til utgangspunktet igjen. Fikk også på plass dette med at appen fortsatte å spille valgte radio, selv om man byttet app eller la den i bakgrunnen. Jeg hadde også klart å vise hva som spilte evt. også med album på låst-skjermen.

Andreas Finstad

43 åring fra Namsos.

Jobber som IT Driftssjef for Midtre Namdal samkommune.
Far til 4 gutter i alderen 2 til 14.

Stikkord: app, blogg, utvikling