Fotball er verdens mest populære tilskuersport. FIFA anslår at om lag 3,5 milliarder mennesker, omtrent halvparten av verdens befolkning, så på verdenscupen i fotball i 2018.
Ihuga fans av sporten bruker gjerne mobilapper til å bli varslet om kampresultater og overganger, sjekke ligatabeller og kampprogram, og kanskje til og med grave seg ned i avansert statistikk. De siste årene har også «expected goals» og andre maskinlæringsdrevne forutsigelser gjort seg mer og gjeldende hos både supportere og bransjefolk.
kode24 har møtt brødrene Christer og Tommy Nordvik, daglig leder og teknisk direktør i norske FotMob - en mobilapplikasjon som leverer det meste av innsikt og «spådommer» til 12 millioner fotballfans verden over.
«Vi skulle lage en J2ME-app, som vi promoterte ved at svigerinnen min laget brosjyrer som konen min stappet ned i postkassene i nabolaget.»
J2ME-app og SMS-betaling
- Historien til FotMob begynner i 2004, da jeg ville følge med på Brann mens jeg var på bryllupsferie. Dette viste seg å være vanskelig, forteller Christer til kode24.
- På den tiden var det WAP-sider og trykketelefon som gjaldt, og da jeg kom tilbake fra bryllupsferien snakket jeg med min bror Tommy og nevnte at noen burde lage en app som lar en følge med på fotball på mobilen. Vi skulle lage en J2ME-app, som vi promoterte ved at svigerinnen min laget brosjyrer som konen min stappet ned i postkassene i nabolaget.
Siden den gang har firmaet vokst gradvis, og applikasjonen gjennomgått en rekke endringer og omskrivinger.
J2ME (Java 2 Micro Edition) har blitt til native apper skrevet i Swift og Kotlin, SMS-abonnementer har måttet vike for Google og Apples innebygde betalingsløsninger, og en liten, lokal kundemasse har vokst til 12 millioner brukere over hele verden. Også det opprinnelige navnet, “Fotballapplikasjonen på mobil”, måtte raskt forkortes til “FotMob” grunnet smale skjermer.
Men veien til dit selskapet er i dag har, som med selskaper flest, vært langt ifra en rett, oppadgående linje.
Både The Gathering og Dagbladet brukte dette hacket på 90-tallet
Trodde ikke på iPhone
- Vi hadde lite tro på iPhone da det kom ut, innrømmer Tommy.
- Mac-er hadde vi ikke, og vi tenkte vel uansett at det var noe som ikke ville slå an. For oss var det Windows Mobile, og senere Android, som i starten hadde verken betaling eller reklamefinansiering, som gjaldt.
Siden den gang har selskapet selvfølgelig fått på plass en iOS-utgave, først ved hjelp av det Microsoft-eide kryssplattformverktøyet Xamarin, og senere som en rendyrket Swift-applikasjon.
Nå om dagen satser selskapet hardt på native apps i SwiftUI og Kotlin, og på å være tidlig på ballen når det slippes ny funksjonalitet. Et eksempel på dette er støtte for de nye låseskjerm-widgetsene, som var på plass da iOS 16 ble sluppet.
Reklame for alle penga
I likhet med mange andre apper er det hovedsakelig reklame som får bunnlinjen til å gå i pluss for Bergen-selskapet. Google Ads står for brorparten av inntektene, men Christer forteller at markedsføringskampanjer i direkte samarbeid med andre aktører blir viktigere og viktigere.
- Vi blir kontaktet direkte av firmaer som ønsker å reklamere til fotballinteresserte. De føler at de får bedre resultater slik enn ved å bruke for eksempel Google Ads eller Facebook, sier Christer.
Det er mulig å betale for å fjerne all reklamen i applikasjonen, men denne muligheten er det svært få som benytter seg av. For resten av brukerne mener FotMob at det er viktig at reklamen ikke går nevneverdig utover brukeropplevelsen.
I praksis betyr dette at ikke firmaet ikke benytter seg av fullskjermreklamer og «andre forstyrrende reklamer», og i stedet benytter seg av bannerreklamer.
Vil vi skal bruke .NET 7 til alt: - Men i Norge brukes det mest til backend
Fra Java til .NET
På backenden til FotMob er det tjenerløs databehandling som styrer showet. Selskapet har som mål å gjøre ting mest mulig «serverless», en fremgangsmåte de mener har fungert svært godt i praksis.
En konsekvens av dette er at firmaet per dags dato ikke benytter seg av Docker og annen container-teknologi. Behovet har rett og slett ikke meldt seg.
En teknologi som brukes flittig, er Microsofts .NET.
- Alt er skrevet i .NET 6, som jeg brukte mye da jeg jobbet i Vizrt. Tidligere brukte vi også en del Java og litt JavaScript, men etter at jeg begynte her i 2017 har vi gått over til 100 prosent .NET. Det yter godt, har gode biblioteker og beherskes av mange utviklere, så vi er veldig fornøyde. Fordelene ved å bruke ett språk overalt er store, forklarer Tommy til Kode24.
«AWS Lambda sin støtte for .NET har blitt bedre, og cold start-tidene har gått ned.»
Cold start-problemer
Hos FotMob finner man mye backend-kode som samler opp og videreformidler informasjon fra tredjeparter, for eksempel statistikkleverandøren Opta og nyhetsformidleren Enetpulse. Det er med andre ord en rekke API-er som håndterer slike integrasjoner bak kulissene.
Ettersom det varierer hvor tidssensitiv informasjonen er, bruker FotMob-teamet både REST, FTP og WebSocket API-er til å utføre arbeidet. For eksempel brukes ett av WebSocket API-ene til å hente «play-by-play»-data fra Opta, og FTP til å overføre MP3-filer med daglige nyheter fra Premier League.
Det er en kjensgjerning at en del utviklere er skeptisk til tjenerløs databehandling, blant annet på grunn av «cold start»-fenomenet. «Cold starts» forekommer når en ekstern prosess har skrudd seg av etter en periode med inaktivitet, slik at responstiden er lengre enn normalt når aktiviteten gjenopptas.
Akkurat dette innrømmer brødrene at har vært utfordrende, men løsbart:
- AWS Lambda sin støtte for .NET har blitt bedre, og cold start-tidene har gått ned. Vi betaler også ekstra for å øke minnet på Lambda-funksjonene, som senker forsinkelsene ytterligere. Flere av API-ene våre er så travle at cold starts uansett ikke forekommer, og vi mener at det er lønner seg å betale litt ekstra for å holde resten «varme», sier Tommy.
Norske tall: Nå er det flere som vil at du skal kunne Azure enn AWS
Design med Zeplin
FotMob-applikasjonen er tilgjengelig i iOS-, Android- og webutgaver. Disse utvikles som tre selvstendige, men likeverdige applikasjoner.
I følge Tommy er det gjerne webapplikasjonen, utformet med React og Next.js, som er kundenes første møte med FotMob, men den tjener også andre hensyn.
- Vi vet også at flere av brukerne våre ønsker å holde seg oppdatert via PC-en, og da er nettleserversjonen den naturlige inngangsporten, forklarer Tommy.
For å sikre et enhetlig visuelt uttrykk på tvers av enheter har firmaet en samkjørt designprosess. Først produserer designeren skisser i Figma, og deretter bruker de verktøyet Zeplin til å «oversette» skissen til kode for hver enkelt plattform. Koden Zeplin genererer brukes deretter av utviklerne som referanse når designet skal implementeres.
Applikasjonsteamet benytter seg også av Apple og Google sine offisielle retningslinjer når de utvikler native-apper i Swift og Kotlin. Tommy utdyper:
- Google har strenge retningslinjer hvordan Android-applikasjoner skal struktureres, mens Apple sine anbefalinger er en del «løsere». Det er fordeler med begge deler. Ved å følge Googles råd får vi applikasjoner som skalerer godt, og de friere tøylene Apple gir oss gjør at vi kan utvikle i et raskere tempo.
Vil bli verdens største
Siden koronapandemien har vekstkurven pekt stadig brattere oppover for FotMob, som i år begynte å satse tungt på vekst.
Innen de tre neste årene skal antall månedlige brukere tredobles, fra 12 til 30 millioner. I den anledning har de blant annet ansatt et eget vekst-team, samarbeidet med kjente fotball-influensere som Wroetoshaw og AJ3, og begynt å levere kamp- og spillergrafikk til store mediehus som Sky Sports.
En tredobling er imidlertid langt unna firmaets langsiktige mål: De skal bli verdens største fotballapp.
For å sitere en intern presentasjon hos FotMob: «3,5 milliarder fotballfans. Bare 0,28 prosent bruker FotMob… ennå.»