Alt vi lurer på om å lage iPhone-apper

Når bør man lage en app, hvordan, og hvorfor ikke med React Native? 🤔 Vi spurte ut Petter Holstad Wright fra Shortcut.

Fagredaktør Jørgen Jacobsen og iOS-utvikler Petter Holstad Wright på kode24-kontoret. Vi hadde noen tusen spørsmål. 📸: Ole Petter Baugerød Stokke
Fagredaktør Jørgen Jacobsen og iOS-utvikler Petter Holstad Wright på kode24-kontoret. Vi hadde noen tusen spørsmål. 📸: Ole Petter Baugerød Stokke Vis mer

- Jeg har inntrykk av at folk synes apputvikling er litt mystisk. Jeg vet ikke om det er fordi det er så annerledes enn web, på en måte, men samtidig er det jo bare å sitte og lage kode, sier seniorutvikler Petter Holstad Wright i ukas episode av kode24-timen.

Vi synes apputvikling er ganske mystisk, selv.

Så vi inviterte iOS-utvikleren fra Shortcut inn i podcast-studioet, og tok en lang prat om hvorfor og hvordan man lager apper i 2020.

Du kan høre hele episoden under, og under der igjen får du de viktigste poengene, fra både våre egne spørsmål og spørsmål fra kode24-klubben.

Hvordan blir man app-utvikler?

Wright studerte interaksjonsdesign på det som da var NITH, senere Westerdals, og til slutt Høyskolen Kristiania. Men han tok mange programmeringsfag, og på sisteåret et valgfag i iOS-utvikling.

- Jeg satt hele sommeren før og leste om Objective-C, og i første time sa læreren: "Dere har fått beskjed om at vi skal jobbe i Swift, sant?", humrer Wright i kode24-timen.

«Vi trenger flere apputviklere i Norge.»

Senere søkte han på en jobb i Shortcut som web/app-utvikler, uten å helt vite om han egentlig kunne nok om app-biten. Men han fikk napp, lærte seg stadig mer og endte opp som nettopp app-utvikler. En slik vei inn i yrket tror han fortsatt kan være aktuelt for mange.

- Vi trenger flere apputviklere i Norge. Så vi må ansette endel folk som ikke er megaflinke på apputvikling, og som heller kan lære mer gjennom jobben, forteller han.

Når det er sagt finnes det i dag flere studier hvor apputvikling er en del av programmet. For eksempel er både Android- og iOS-utvikling egne emner i Høyskolen Kristianias "frontend- og mobilutvikling", og apputvikling noe man skal lære på "anvendt datateknologi" på Oslo MET.

App-utvikler Petter Holstad Wright ber folk tenke nøye gjennom hvorvidt de egentlig trenger en app. 📸: Ole Petter Baugerød Stokke
App-utvikler Petter Holstad Wright ber folk tenke nøye gjennom hvorvidt de egentlig trenger en app. 📸: Ole Petter Baugerød Stokke Vis mer

Hvorfor skal man lage app?

Alternativet til en native mobilapp er en web-app, hvor den samme applikasjonen kan fungere på tusenvis av ulike enheter, inkludert mobiler.

- Men bruker du annen teknologi, vil du alltid ligge ett steg bak native, mener Wright, og sikter blant annet til brukeropplevelse og tilgang til systemet.

- Om du har brukt et nettsted som ber om tilgang til posisjonen din, vet du at det er litt kjipt å bruke. Mens man i native-apper har klart å lage et system folk skjønner og klarer å forholde seg til, fortsetter han.

Eksempelet handler blant annet om hvordan man i en app kan få brukerens tillatelse og innlogging én gang, og bruke den til evig tid. På webben derimot, med stadig mer fokus på personvern, blir det også stadig vanskeligere å lage personlige tjenester.

Men dette i seg selv er ikke god nok grunn til å lage app, mener Wright. Shortcut mener en app skal gi brukeren en personlig, interaktiv opplevelse, utover det allerede eksisterende nettsider klarer å gi dem. Og nettopp da kommer native-apper inn i bildet, for eksempel for å bruke iPhone sine AR-muligheter, få en Apple Watch-utgave av appen din eller la brukere identifisere seg med FaceID.

- Vi har mange som kommer til oss og vil ha en app på grunn av push-varsler. "Hva vil dere med appen?" spør vi. "Jo, vi vil sende push-varsler til folk" svarer de. "Men hva vil dere gi brukeren?" spør vi. "De skal få de push-varslene!".

- Og hva sier dere da?

- Vi sier som oftest nei.

App-utvikler Petter Holstad Wright jobber for det aller meste i Xcode. 📸: Ole Petter Baugerød Stokke
App-utvikler Petter Holstad Wright jobber for det aller meste i Xcode. 📸: Ole Petter Baugerød Stokke Vis mer

Hvordan lager man en iPhone-app?

På webben kan du velge mellom en uendelig rekke av språk, rammeverk, biblioteker, editorer og teknologi. På iOS er det en ganske annen verden.

- Jeg bruker all min tid i Xcode, omtrent, forteller Wright.

Xcode er Apples eget utviklerverktøy, som kun kjører på Mac, og blant annet iPhone-apper bygges i. Swift har nå tatt helt over for Objective-C som språk, selv om Wright fortsatt kommer borti Objective-C-kode på eldre prosjekter.

- Del én er å lære seg Swift, del to er å lære seg rammeverkene Apple har, for ting som HTTP-requests, sier iOS-utvikleren i kode24-timen.

De fleste iOS-utviklere skal foretrekke å holde seg til Apples egne biblioteker, selv om man kan importere andres, også. Men for enkelte ting, som kræsj-logging og analyse, trenger man hjelp. I Shortcut bruker de for eksempel Googles Firebase mye.

Når det kommer til resten av backend-en, bruker apper som oftest den samme backend-en som bedriftens andre tjenester lener seg på.

SwiftUI, som er Apples nye måte å bygge brukergrensesnitt på, har ikke Shortcut begynt å bruke utover interne prosjekter. Apper bygget med dette støttes nemlig ikke av eldre iOS-versjoner enn den aller siste. Men å lære det allerede nå skal være lurt, sa Shortcut nylig i vår Kodeåret-serie.

App-utvikler Petter Holstad Wright er ikke så glad i hybridløsninger som React Native og Flutter, men mener enkle apper helt greit kan lages sånn. 📸: Ole Petter Baugerød Stokke
App-utvikler Petter Holstad Wright er ikke så glad i hybridløsninger som React Native og Flutter, men mener enkle apper helt greit kan lages sånn. 📸: Ole Petter Baugerød Stokke Vis mer

Hvorfor ikke lage hybrid-apper?

Å lage iOS-apper i Swift betyr å lage "skikkelige native-apper". Det er slik Wright jobber i Shortcut, og de må da lage én app fra bunnen av til iOS, og en annen app fra bunnen av til Android.

Alternativet er verktøy som React Native, Flutter og Xamarin, hvor du har samme kodebase for både iOS- og Android-versjonen av appen din. Ofte kalles dette en hybrid-app.

- Hvor viktig blir appen for deg og selskapet ditt? Trenger du bare å lage noe enkelt, så kjør på i React Native eller Flutter. Men skal du lage noe som skal leve over flere år, som mange mennesker skal bruke, er det kanskje ikke det beste, mener Wright, som forøvrig mener Flutter er "den nye React Native".

Grunnen hans er todelt:

  • For det første vil hybrid-verktøyene ha begrensninger i hvor langt inn i OS-et du kommer, og gjøre det vanskelig å for eksempel støtte AR, Apple Watch eller alle navigasjonsmulighetene. Android og iOS er mer annerledes enn mange tror, mener han.
  • For det andre mener Wright at appene blir vanskeligere å vedlikeholde: Når noe går galt må du finne ut om feilen ligger i native-koden til iOS, native-koden til Android eller i for eksempel JavaScript-koden i React Native. Og bruker du biblioteker på toppen, får man det samme problemet som i "dependency-rodeoet" på webben.

- For meg høres det litt uoverkommelig ut å måtte lage to apper helt fra bunnen av. Samtidig er det kanskje viktig å huske at en app ofte bare er en frontend til en større tjeneste i bakenden?

- Ja, det blir som på web: Hvor skal logikken ligge? Det er mye logikk som må ligge på frontend, men også mye som kan ligge på backend, svarer Wright.

- Og det kan være at man i apper dytter mye av den tyngste logikken til backend, for å slippe å bygge den to steder.

🎧 Hør hele vår lange, spennende prat med Wright i kode24-timen, hvor vi også får svar på alle spørsmålene fra kode24-klubben!