Det er mye å tenke på når kan skal lansere app, ikke bare utviklingen.
Det er mye å tenke på når kan skal lansere app, ikke bare utviklingen.

Annonse


Hemmelighetene til en app-utvikler: Apple-tull, krasj og veien til flere tusen nedlastinger

Siste av to deler.

App Store
Jeg syntes nå ting fungerte veldig bra. Jeg hadde brukt to måneder på å komme dit og ivret nå etter å få appen publisert på App Store. Jeg manglet selvsagt mye av den funksjonaliteten jeg ønsket meg, men dette kunne komme etter hvert. Jeg bestemte meg får å legge meg på minstepris, altså ni kroner. Dette var billigere enn andre norske radio-apper jeg fant som hadde tilnærmet funkasjonalitet.

Jeg oppdaterte informasjonen om appen og lastet opp skjermbilder som viste appen i bruk og ventet. Det gikk nesten en uke uten at noen ting skjedde. Jeg leste rundt på diverse forum og forstod at dette ikke var uvanlig. For tiden så ble det sendt inn rundt tusen hver dag dag! Endelig en mandags-kveld, fikk jeg en e-post om at appen min var «In Review».

Ojoj, dette var spennende! Det gikk så ca. 30 minutter, så kom det en e-post om at den var… «Rejected».

Annonse


Hvorfor? Begrunnelsen var at jeg hadde lagt med et bilde som viste «Låst-skjermen», noe som ikke funksjonalitet i min app. Det kunne jeg jo si meg enig i, men skjermbildet var der jo selvsagt for å vise at appen kunne kontrolleres derifra. Javel.

Bort med dette skjermbildet og deretter sende inn på nytt. Hvor lenge måtte jeg nå vente? Lå jeg bare på vent mens jeg fikset problemet, eller kom jeg bakerst i køen igjen? Etter å ha lest litt på utviklerforum kom jeg også frem til at, dersom man hadde blitt avvist kom man faktisk bakerst i køen igjen. Bummer!

Endelig var det min tur
Fredag kveld 5. februar kom det igjen e-post om at appen var «In Review».

Jeg krysset fingrene og etter ca. en time kom det beskjed om at den var «Ready for sale». Yes!

Appen var ute på App Store og den så ut som bildet under i. Veldig kjedelig grensesnitt, men den gjorde akkurat det den lovet. Jeg kastet meg selvsagt over Facebook og spredte det glade budskap om at endelig var appen min tilgjengelig på App Store!

Venner og familie kunne etter hvert informere om at appen var lastet ned og at de syntes det var «en snedig app».

Utviklingen fortsatte. Jeg hadde an lang liste over ting jeg ønsket å få på plass. Det å kunne velge egen bakgrunn og endre gjennomsiktighet på de forskjellige elementene på hovedbildet var første prioritet. Det var jo ganske kjedelig slik det var.

Den første versjonen var særdeles enkel.
Den første versjonen var særdeles enkel. (Ill.: Andreas Finstad)

Dette var jeg ikke helt fornøyd med
Tekstboksen som viste spilleinformasjon ønsket jeg å gjøre noe med, for ofte ble det veldig mye tekst i denne noe som dro med seg et rotete grensesnitt. På låst-skjermen ble dette vist i form av en rulletekst. Dersom jeg kunne få til det, ville det se mye bedre ut. Man trenger jo ikke å vise mer enn en linje dersom teksten rullet, men hvordan gjør man det, mon tro?

Da ble det å søke på nett igjen og se om noen hadde en løsning å dele, men jeg fant veldig lite. Det var en utvikler som hadde laget og delt en rulletekst-funksjon, men denne var på flere hundre linjer med kode. Det måtte da være andre måter å gjøre dette på?

Jeg funderte på denne forbaskede rulleteksten i to måneder. Løsningen kom plutselig en natt da jeg hadde sittet i flere timer og prøvd å få hull på problemet.

Løsningen var (veldig kort forklart) å regne ut lenden på teksten pluss skjermbredden, forskyve teksten i tekstboksen mot venstre noen piksler av gangen helt til den hadde flyttet teksten helt ut av skjermen og så kjøre dette uendelig.

Den nye tekstvisningen ble implementert i prosjektet og lagret klart for Apples godkjennelsesprosess. Etter noen dager ble versjonen akseptert og lagt ut på App Store.

Fornøyd kastet jeg meg over neste punkt på listen.

Krasj og verdensherredømme
Jeg hadde nå bestemt meg for å utvide markedet litt. Hvorfor bare ha norske stasjoner? Jeg kunne jo også legge til svenske, danske og kanskje finske stasjoner også.

I tillegg har jeg halvt svensk og har familie der, så appen må jo også være på svensk, ikke sant? Hva med N-en i nRadio som betød Norsk? Vel, fra nå av stod den for Network.

Jeg satte i gang med å gjøre appen flerspråklig. Plutselig ble jeg klar over at avspilling stoppet dersom man la appen i bakgrunnen eller byttet skjermbilde? Det var veldig rart. Etter litt observasjon viste det seg at det var appen som krasjet. Alt annet ble selvsagt lagt på hold. Jeg kunne jo ikke ha en app på App Store som krasjet, så jeg satte i gang med feilsøkingen.

XCode har masse verktøy for dette. Det var mye å sette seg inn i. Grunnen til at appen krasjet, viste seg å være at den brukte 100 prosent CPU når den gikk i bakgrunnen. Dette tillater selvsagt ikke iOS, så den ble avsluttet av operativsystemet. Men hvorfor brukte den 100 prosent CPU, og når hadde dette oppstått? Det var veldig vanskelig å finne forklaring på.

Jeg begynte også å bli litt stresset. Likte ikke tanken på at folk kanskje opplevde krasj etter krasj. Nå hadde jeg ikke solgt mer enn ca. 50 stykker på dette tidspunktet, men likevel…

Til slutt ble det elimineringsmetoden. Deaktivere ting, teste og aktivere igjen dersom det ikke gjorde noen forskjell. Helt til slutt viste seg da at det var min stolthet, rulleteksten, som forårsaket problemet. Hvorfor var det ikke mulig å finnet ut av. Så lenge den vistes på skjermen var CPU-forbruket normalt, ble den skjult gikk den i hundre med det samme.

Løsningen var å deaktivere den rullerende teksten dersom man endret skjermbilde eller la appen i bakgrunnen, og aktivere scrolltekst igjen dersom den kom i forgrunnen. Deretter få godkjent ny versjon av appen igjen så fort som mulig, noe som kun tok et par dager denne gangen. Puh!

Med dette på plass, kunne videre utvikling igjen fortsette.

De neste månedene gitt med på å få på plass funksjonalitet som jeg tidligere hadde bestemt meg for at appen skulle ha. I tillegg begynte jeg å jakte på URL-er til radiostasjoner. Jeg utvidet stasjoner med flere og flere land. Fant også en del databaser på nett der man har kunnet hente ut mange stasjoner. Disse måtte jo også testes før de ble lagt inn, så jeg brukte mye tid på å lage et bash-script som ved hjelp av CURL kontrollerte hver enkelt URL for å sjekke om de var aktive.

Det lille ekstra som tar mye tid
Men selv om jeg hadde laget en radio app som var ganske unik i både design og funksjonalitet, var den var fremdeles en radio app og de finnes det hundrevis av på App Store. Mye av det som skiller den ut fra andre apper er «under panseret», så det vises jo ikke.

Jeg måtte ha «det lille ekstra» som også var synlig.

Da slo det meg. Speedometer! Det hadde jo vært veldig kjekt å ha når man var ute og syklet, men også i bilen. Dersom du har fått fartsbot en gang, så vet du at man aldri blir nok opplyst om hastigheten man har. I tillegg er speedometer basert på GPS mer nøyaktig enn det som er i bilen. (pluss at det er litt stilig også da).

Så dermed ble det implementert et speedometer og et altimeter, pluss temperatur. Temperatur hentes fra en værtjeneste basert på GPS-koordinater.

Alt dette tok selvsagt ukevis å få på plass. Jeg fikk også oppleve å bli avvist på App Store flere ganger, fordi jeg ikke hadde dokumentert godt nok hvorfor jeg brukte forskjellig funksjonalitet, eller for at jeg brukte skjermbilder som f.eks. viste album-kunst. De er jo selvsagt opphavsrettsbeskyttet, noe jeg ikke hadde tenkt på. Disse albumbildene måtte jeg «pikselere» til det ugjenkjennelige.

Til slutt hadde jeg en versjon av appen min på App Store som gjorde mye mer enn det jeg først hadde sett for meg. Bla. søker den opp albumgrafikk i iTunes for radiostasjoner som ikke sender med dette i metadata.

Den har 81 land og over 23,000 radiostasjoner.

Selvsagt må man ha speedometer når man er ute på veien.
Selvsagt må man ha speedometer når man er ute på veien. (Ill.: Andreas Finstad)

Hva kan gjøres for å øke salget? ASO (App Store Optimization)
Når jeg nå hadde en app på App Store, så tror du kanskje jobben er gjort. Det trodde jeg, men der tok jeg grundig feil. Her er det masse å tenke på, som i allefall ikke jeg var klar over.

Jeg skal ikke skryte av at salget gikk av seg selv, for det var faktisk nesten ingen nedlastinger fra mars til juli. Her måtte noe gjøres. Jeg hadde jo en app som absolutt fortjente livets rett, men som ingen så. Den druknet rett og slett i App Store sammen med de andre 2,5 millionene.

Etter litt lesing forstod jeg at det var noe som het ASO (App Store Optimization). Det går ut på å bruke riktige søkeord (du kan legge inn opp til 100 tegn med søkeord for appen din på hver App Store rundt omkring i verden).

En annen ting, er navnet på appen. Det er veldig viktig og har høyest prioritet når det søkes på App Store. Så appen min som het nRadio hadde liten eller ingen sjanse til å bli funnet, ettersom nRadio ikke var et ord.

Jeg hadde riktig nok lagt inn Radio som et søkeord, men sammen med alle de andre radioene ga dette ikke mye hjelp. Så etter litt fundering, endret jeg navnet til: nRadio – Not just another internet radio app. (Dette på den amerikanske App Store. Egne navn og søkeord på appen brukes i forskjellige lands App Store).

Dermed vil søk på følgende ord finne min app:

• Internet Radio
• Radio app
• Radio

Ellers er søking i App Store veldig urettferdig bygd opp. Apper som er mest lastet ned, kommer høyest opp som resultat når man søker. Derfor trenger man også en liten boost.

Hvordan markedsføre
Her var det masse tips å hente rundt omkring på nett. Først prøvde jeg å dele informasjon om appen på Facebook og spørre om alle vennene mine kunne dele videre. Dette hadde jeg ikke særlig hell med. Nedlastinger var fremdeles på null. Men tilstedeværelse på sosiale media er viktig. Egen Facebook-side ble også opprettet + egen Twitter-konto: @nRadioApp.

Deretter brukte jeg masse tid på å kontakte sider på nettet som skriver om apper. En del av disse var positive til å teste appen og skrive en omtale om den. Ettersom at appen min ikke var gratis, måtte jeg levere fra meg «promo codes».

Hver gang du poster en ny versjon av en app på App Store, får du 100 Promo Codes som du kan bruke til dette formålet. Om man løser inn en kode, kan appen lastes ned gratis.

En del slike sider tilbyr også at man kan kjøpe seg en omtale. Da er det ofte at man betaler en mer eller mindre symbolsk sum (10 dollar) og garantert blir omtalt. Sider som er profesjonelle, gir en ærlig gjennomgang av applikasjonen. Så man kan ikke regne med å få bare ros.

Samtidig er man avhengig av at brukerne av appen legger inn en vurdering. Apper uten bruker-vurderinger blir ikke lastet ned. Brukere er også de som det er vanskeligst å få til å legge inn en vurdering pluss at de kan fort gjøre livet surt for deg med bare en negativ vurdering.

Det skal mange positive vurderinger til for å veie opp for en negativ.

Omtaler gjorde at appen min ble mer synlig på nett. Opprettet også en egen webside for appen: http://nradio.f20.be som jeg kunne bruke som en informasjonskanal med «How To»-videoer osv. Nedlastinger økte og holdt seg ganske stabilt på en til 2 om dagen.

Men fremdeles er jo ikke dette noe å skryte av. Så fant jeg ut av at jeg skulle prøve noe drastisk. Jeg gjorde appen gratis med reklame.

Jeg la derfor inn en «Fjern reklame-knapp» som i-app-kjøp, slik at man kunne betale for å fjerne reklamen, eller bare bruke appen uten andre begrensninger enn en litt plagsom reklame.

Det viste seg at det er mange nettsider rundt omkring i verden som har følgere i App Store. Dersom en App som har kostet penger i lengre tid, og den plutselig blir gratis, så plukkes dette opp og annonseres ut på sidene. Dette fikk jeg merke da jeg kontrollerte nedlastinger dagen etter. Det var blitt gjort over 5.700 nedlastinger!

Fra 5. desember frem til 19. har folk lastet den ned nesten 16,000 ganger. De siste dagene har antallet gått ned til 100-200 om dagen og jeg regner med at det vil falle mer.

Men morsomt er det, og appen er jo der til glede for brukerne, og jeg har lært masse på veien.

Appen slik den ser ut i dag med speedometer.
Appen slik den ser ut i dag med speedometer. (Ill.: Andreas Finstad)

Annonse