Alle som av og til tar toget, kjenner antagelig til Vy-appen. Men hvordan er den egentlig laget?
Vi spurte Cecilie Klarpås, som er en av utviklerne som er med på å lage VY-appen. Hun forteller at appen har rundt 900.000 brukere i måneden.
– Den skal gjøre det enklere å finne en reise, kjøpe billett og få informasjon om avvik slik at flere velger å reise miljøvennlig med kollektivt. Vi ønsker selvfølgelig at den skal være den beste appen for reiseplanlegging, og jobber iherdig mot det målet, sier Klarpås.
– Hva bygger dere backenden med?
– Backenden består av en rekke mikrotjenester som er skrevet i Kotlin og bygget med Maven eller Gradle.
– Vi bruker skytjenestene til AWS og funksjonsbrytere fra Launch Darkly til delvis utrulling av nye funksjonaliteter.
– Hvorfor valgte dere dette?
– I 2017 skjedde det noen strukturelle endringer i bransjen som gjorde at vi måtte tenke nytt og reorganisere arkitekturen vår. Det var nødvendig å bryte opp de store monolittene for at vi skulle kunne gjøre endringer raskt og for å gi teamene autonomi og mer avgrensede ansvarsområder.
– Vi valgte språk utifra kompatibilitet med AWS, der Kotlin skilte seg fra Java ved å være mer moderne med flere nye konsepter og en mer funksjonell tilnærming.
– Hvordan har dette valget fungert for dere?
– Det har fungert bra. Det er selvfølgelig ting vi kan gjøre bedre i prosessen og forvaltningen av tjenestene, men arkitekturen og teknologiene fungerer godt.
– Vi er spesielt fornøyd med at mikrotjeneste-arkitekturen har gitt oss kompetansen og evnen til å raskt integrere mot nye systemer siden det skjer endringer som vi må forholde oss til hele tiden.
«Det var nødvendig å bryte opp de store monolittene for at vi skulle kunne gjøre endringer raskt.»
– Og frontenden, hvordan lager dere den?
– Der har vi valgt React Native.
– Hva er grunnen til at dere gikk for React Native?
– Arbeidet med appen slik den er i dag startet for circa 4 år siden da NSB ble til Vy. Vi valgte React Native fordi det gjorde at vi kunne ha samme kodebase for iOS og Android, hvilket har bidratt til en raskere utviklingsflyt og en bedre brukeropplevelse på tvers av operativsystem.
– Det var også det naturlige valget siden bruken av React Native var i oppsving på den tiden.
– Hvordan har dette valget fungert for dere? Og har dere planer om å gå over til noe annet?
– Dette har fungert veldig bra for oss. Andre teknologier vurderes fortløpende, men det er fortsatt React Native som fungerer best for våre behov. Siden det finnes så mange dyktige utviklere med React-kompetanse her i landet, vektlegger vi spesielt at React Native er relativt enkelt å jobbe med når man allerede har vært borti React.
– Nå har vi i tillegg implementert designsystemet vårt (”Spor”) i React og valgt å skrive nettsidene våre over til React, så det blir nok ikke aktuelt å gå over til noe annet på en stund.
«Det er fortsatt React Native som fungerer best for våre behov.»
– Bruker dere andre verktøy?
– Vi bruker som nevnt Launch Darkly funksjonsbrytere for å teste ut nye funksjoner i prod og rulle ut på en mer kontrollert måte. Det gir oss bedre kontroll over hvem som skal få endringene og gjør arbeidsflyten raskere ved å blant annet la oss definere hvilke versjoner av appen som skal få funksjonaliteten.
– Github Actions og Fastlane brukes til automatisering av linting, codepush og native release.
– Appen testes lokalt i iOS- og Android-simulatorer, men vi lager også testapper som lastes opp automatisk – via Github Actions og Fastlane – til Microsoft App Center. Teamene laster deretter ned sin versjon og tester egne funksjonaliteter på sine private telefoner.
– Det har vært verdifullt for at vi skal kunne jobbe selvstendig og smidig på tvers av team.