- Lær deg SwiftUI og Jetpack Compose!

App-utviklerne i Shortcut om 2020. - React Native er fullstendig på vei ut av radaren vår, og det er det ingen hos oss som gråter over.

Her er mye av gjengen på Oslo-kontoret til Shortcut samla før juleferien. Daglig leder Marius Mathiesen sitter helt til venstre på første rekke. 📸: Privat
Her er mye av gjengen på Oslo-kontoret til Shortcut samla før juleferien. Daglig leder Marius Mathiesen sitter helt til venstre på første rekke. 📸: Privat Vis mer

På datamaskinen skal alt gå fra programvare til nettleseren, men etter flere år med spådommer om samme utvikling også på mobilen, er apper fortsatt i aller høyeste grad i live.

Shortcut er en av de aller største på apputvikling her i Norge, og konsulentene på kontorene deres i Oslo, Bergen og København har vært involvert i blant annet Vipps, Æ, Gjensidige og Posten.

Teknologivalgene Shortcut gjør er derfor interessante - ikke bare hva de bygger selve appene i, men også det som blir en stadig viktigere del av dem: Backend-ene.

kode24 fikk utviklerne deres til å oppsummere året som har gått til vår serie Kodeåret, og spå litt om året som kommer. Svarene kommer fra selskapet som helhet, visstnok etter mye diskusjon på Slack-en deres, og er smelta sammen av daglig leder Marius Mathiesen og seniorutvikler Petter Holstad Wright.

- Når det gjelder handover av design har vi begynt å bruke realtime-verktøyet Figma mye mer, forteller utviklerne i Shortcut. 📸: Privat
- Når det gjelder handover av design har vi begynt å bruke realtime-verktøyet Figma mye mer, forteller utviklerne i Shortcut. 📸: Privat Vis mer

Hvilke teknologier begynte dere å bruke i 2019? ✨

I år har vi begynt å bruke gRPC, en teknologi en av utviklerne våre mener er mye morsommere å jobbe med enn GDPR. gRPC er en interessant tilnærming til å sende data som (som så mye annet) har en del positive og noen negative sider, mens GDPR er en rekke lover (som vi er veldig fan av!) som gir oss utviklere en del oppgaver som har med personvern å gjøre.

Humoren er at de heter noe av det samme, men er helt forskjellige ting. Enkel humor der, altså.

2019 er også året da vi ble Google Cloud Platform Partner med spesialisering i applikasjonsutvikling. For å få dette til har mange av våre ansatte gjennomgått en grundig opplæring og sertifisering i hele produktporteføljen til Google Cloud Platform. Vi har valgt å investere i dette fordi altfor mange gode apper lider av for dårlige backend-systemer. Og for oss er det aller viktigste at appene vi lager er så gode som mulig.

«Vi har gjort mange prosjekter i Go(lang), og har erfart at dette gir god ytelse og skalerbarhet.»

Vi har gjort mange prosjekter i Go(lang), og har erfart at dette gir god ytelse og skalerbarhet i backend-systemene vi lager. Mange av prosjektene vi har gjort på cloud bruker serverless-plattformer, noe som gjør det enklere å skalere opp og ned ettersom bruken endrer seg. Men heller ikke serverless er uten sine utfordringer, og her har vi lært mye i 2019. Til tider mer enn vi skulle ønske…

Vi har også implementert Sign-In with Apple på flere av appene vi jobber med, noe som gjør at man kan logge inn i apper “anonymt”. Og til glede for oss har Google faktisk implementert det i Firebase Authentication, som gjør det lett for oss å få det på plass i de appene vi bruker det rammeverket.

Når det gjelder handover av design har vi begynt å bruke realtime-verktøyet Figma mye mer, noe som sikrer at alle alltid ser på den siste versjonen av designet. Det er litt deilig å kjenne at det nærmer seg slutten på at utviklerne bruker tid på å implementere et utdatert design fordi en designer glemte å trykke publish i Zeplin før hun/han dro for dagen.

- Vi har i 2019 overtatt flere apper der teamet har malt seg inn i et hjørne med React Native, forteller utviklerne i Shortcut, her fra årets julebord, eller "Shoscars" som de kaller det, med prisutdelinger og det hele. 📸: Privat
- Vi har i 2019 overtatt flere apper der teamet har malt seg inn i et hjørne med React Native, forteller utviklerne i Shortcut, her fra årets julebord, eller "Shoscars" som de kaller det, med prisutdelinger og det hele. 📸: Privat Vis mer

Hvilke teknologier slutta dere å bruke i 2019? 💩

Vi har igjen opplevd at det å kvitte seg helt med gammel teknologi tar lenger tid enn vi kunne ønsket oss. Selv om Swift i praksis har tatt fullstendig over for Objective-C, og Kotlin har gjort det samme på Android, har vi fortsatt flere prosjekter der det fortsatt finnes Objective-C og Java-kode. Men det å starte nye prosjekter med Objective-C eller Java er det heldigvis helt slutt på.

Vi har merket en generell nedgang i etterspørsel etter løsninger laget for kryssplattform, på tross av Flutters popularitet. Da vi reiste på firmatur til Dublin i oktober laget vi en app for turen (selvsagt, vi er jo et appselskap) i Flutter. Og her varierer tilbakemeldingene fra utviklerne av appen fra 😍 til 🤬. Folk er folk.

«Vi har i 2019 overtatt flere apper der teamet har malt seg inn i et hjørne med React Native.»

React Native er fullstendig på vei ut av radaren vår, og det er det ingen hos oss som gråter over. Vi har i 2019 overtatt flere apper der teamet har malt seg inn i et hjørne med React Native. Og når dette skjer er det mange som kommer til oss for å utviklet native-apper i stedet. Eller plattformavhengige apper, som Språkrådet nå har bestemt det skal hete på norsk.

RxJava og ReactiveSwift beveger seg også ut fra radaren over teknologi vi ønsker å bruke i Shortcut. Her har både læringskurven vært bratt for de som ikke kjenner til teknologien fra før, og det har kommet ny teknologi som Coroutines i Kotlin og Combine i Swift som reduserer behovet for dem.

Hvilke teknologier antar dere å begynne å bruke i 2020? 🔮

Som app-utviklere må vi ofte vente med å bruke spesifikk funksjonalitet, ettersom at vi ofte må støtte både den forrige og nyeste versjon av iOS. I år lanserte Apple SwiftUI, en mye enklere måte å programmere UI, som vi alle håper å få putte i produksjon så fort iOS 14 blir lansert.

I Android-verden har verktøyet Jetpack Compose blitt lansert i en “Developer Preview”, som har samme tilnærming til UI-utvikling som SwiftUI. Begge verktøyene fokuserer på å gjøre det enkelt å kode komponenter som takler forskjellige tilstander (forskjellige tekst/språk/status/dark mode/booleans). Man får se live hvordan komponentene fungerer med forskjellige tilstander, hvordan de oppfører seg om tilstanden endrer seg (hei sveis, animasjoner!) og hvordan de da vises på forskjellige skjermstørrelser. Det blir med andre ord veldig lett å vise designerne at designet de har tegnet opp fungerer dårlig for folk med lange navn.

Apple, som gjerne vil at man lager apper både for iPhone, iPad, Apple TV, macOS og Apple Watch, forteller at man kan bruke samme UI-kode for alle disse plattformene. Hvor enkelt dette blir i praksis blir spennende å se. Som vi har erfart med å jobbe med reaktive rammeverk (som React, Flutter, RxJava, ReactiveSwift) er det alltid en utfordring å jobbe med tilstand koblet direkte i UI når man har større kodebaser. For å gjør dette lettere på iOS har Apple lansert et rammeverk som heter Combine, som gjør det lettere å jobbe med funksjonell og reaktiv programmering. Kombinasjonen (hehe) Combine og SwiftUI skal (i teorien) gi en ryddig og oversiktlig kodebase.

Det blir spennende å se hva som skjer med CI/CD for apper i løpet av året. Hockey App, som var det beste verktøyet for noen år siden, har blitt App Center etter at Microsoft åpnet opp lommeboka. En helt grei tjeneste, som har fått mye konkurranse fra flere kanter, der CircleCI kanskje er lederen. Apple kjøpte BuddyBuild i 2018, uten at vi helt kan se hvilken verdi det har gitt… ennå.

«Det blir spennende å se hva som skjer med CI/CD for apper i løpet av året.»

Men det at det nå begynner å bli mer konkurranse innen feltet kan vel bare være positivt. At sjølveste Github har kastet seg med i dansen kan bli spennende å se hva resulterer i. Det hadde jo vært veldig greit å kun forholde seg til Github (ikke at vi ikke liker å prøve nye ting, altså!).

Ettersom flere og flere forstår at skytjenester er noe annet enn virtualiserte servere i skyen, ser vi også et skifte mot å bruke skytjenester for det de er godt for (og vel så det). Ting som databaser, innloggingstjenester, API-gatewayer, data pipelines og oppsett av containere er noe vi sjeldnere og sjeldnere setter opp manuelt.

Vi tror også at monolittiske apper oftere og oftere byttes ut med mikrotjenester, med de fordelene og ulempene dette gir. For selv om det er vanskeligere å sette seg inn i hvordan en app med 100.000 linjer fungerer enn hvordan en funksjon på 100 linjer fungerer, er det fortsatt en utfordring å få de forskjellige delene av et system til å snakke sammen.

Om dere bare skulle lært dere én ny teknologi for å bli klare for 2020, hvilken ville det vært? 💡

Som sagt i forrige spørsmål; for apputviklerne våre er det helt klart SwiftUI (gjerne med Combine) og Jetpack Compose.

Skyarkitektene våre gleder seg til å ta i bruk Migrate for Anthos, fordi de da raskt kan flytte servere fra andre skyplattformer eller eget datasenter inn til Google Cloud Platform.

Hva tror dere blir bransjens største utfordringer i 2020? 🔥

Den teknologiske utviklingen går raskere og raskere. Det dukker opp flere og flere muligheter for å skape gode interaksjoner mellom bedrifter og deres sluttbrukere. Likevel ser vi bedrifter som ikke klarer å levere produkter i den kvaliteten de ønsker.

Det er mange grunner til dette. Utfordringene vi “på innsiden” ofte ser kommer nå i en sånn størrelse at det fort blir førstesideoppslag ut av det. Som at Elkjøp valgte å sette opp et køsystem på nettsiden sin på Black Friday og at nasjonal ID-prosjektet ble utsatt for syvende (!) gang. Men det er et skille. “Back-to-native”-bølgen som vi spådde i fjor er et faktum, noe som tyder på at folk bryr seg om kvalitet. Man har bare et problem med å se hele bildet.

Å finne nok flinke folk er en utfordring for oss. Og det at så mange har den samme utfordringen gjør at kampen om de flinke folka blir enda vanskeligere. Det mest frustrerende er at vi ser flinke folk som må jobbe med utdatert teknologi i bedrifter der de er satt til å løse de ovennevnte utfordringene, uten mandat eller handlingsrom til å gjøre de fundamentale endringene som trengs for å lykkes.

«For oss er det rett og slett et problem å finne og lære opp nok flinke apputviklere.»

Vi som konsulenthus ser en trend der mange bedrifter helst vil ha egne ansatte. De har forstått at teknologiprosjekter ikke er noe som blir “ferdig”, men er noe man kontinuerlig jobber med og itererer over. Vi ser også at mange dyktige utviklere trives bedre som konsulenter da de kan bytte prosjekt så fort de ser at det ikke finnes handlingsrom for å gjøre de kritiske endringene som kreves.

For oss som jobber med apper er det også en kjempeutfordring at vi lever i en verden der det finnes nesten 5 milliarder mennesker som bruker en smarttelefon hver dag. Grunnen til at nesten ⅔ av verdens innbyggere kjøper smarttelefon, nåtidens mest populære datamaskin, er at de ønsker seg apper. Samtidig er det en ubetydelig andel av verdens utviklere som har kompetanse innen apputvikling, i Norge er vi kanskje noen hundre apputviklere.

For et selskap som oss, som har trodd på apper i over 10 år, er det rett og slett et problem å finne og lære opp nok flinke apputviklere til å møte etterspørselen i markedet.

2020 kan bli et “vinn eller forsvinn”-år for bedrifter som er avhengige av gode interaksjoner mellom seg og sine sluttbrukere. Interaksjoner bygget på stabil teknisk grunnlag av seriøse håndverkere, som er forståelige og stabile. På bakgrunn av dette er det naturlig å tenke å skyvirksomhet blir enda mer kritisk, samt utviklere, designere og rådgivere som kan levere bedriftskritisk hjelp som handler prosess og produktutvikling, i tillegg til koden/design, for å sikre gode brukeropplevelser for sluttbrukeren.