- Det kule med macOS-utvikling, er at jeg kan lage apper jeg virkelig trenger daglig

Skaperen av PastePal, Khoa Pham, om hvordan og hvorfor han utvikler til både iOS og macOS.

PastePal 2.0 kan relativt enkelt tilpasses både iPhone og Mac, takket være at alt er skrevet i Swift og SwiftUI. 📸: Ole Petter Baugerød Stokke
PastePal 2.0 kan relativt enkelt tilpasses både iPhone og Mac, takket være at alt er skrevet i Swift og SwiftUI. 📸: Ole Petter Baugerød Stokke Vis mer

- Et noe "ukjent faktum" blant oss utviklere, er at vi kopierer og limer inn masse. Og jeg er ikke noe unntak, humrer utvikleren Khoa Pham, som til daglig jobber i Shortcut.

Khoa Pham jobber til daglig som utvikler i Shortcut, men utvikler blant annet macOS-apper på fritida. 📸: Privat
Khoa Pham jobber til daglig som utvikler i Shortcut, men utvikler blant annet macOS-apper på fritida. 📸: Privat Vis mer

- Og når jeg søker etter ting på Google eller StackOverflow, trenger jeg ofte å finne tilbake til lenker og kodesnutter jeg kopierte tidligere. Jeg trengte derfor et program som sporer mine kopieringer, og som er der når jeg trenger det. Hva er vel bedre enn et program jeg utvikler selv, sier han videre til kode24.

- Jeg skjønner problemet og vet hva jeg trenger selv, også håper jeg andre også vil få bruk for det.

Som sagt, så gjort: Pham har nettopp utgitt sin siste versjon av mobil-appen og Mac-programmet PastePal, som blant annet lar deg lagre alt som kopieres på tvers av MacOS og iOS.

Og det viste det seg at joda - andre trengte visst det samme, tross hard konkurranse.

Fra AppKit til SwiftUI

Pham koda den første utgaven av PastePal for et par år tilbake, i Apples AppKit.

Så, etter lanseringen av SwiftUI på WWDC i 2019, ble mye skrevet om til dette. Men SwiftUI var fortsatt ung, og mye måtte fortsatt kjøres med AppKit. Ikke før SwiftUI 2.0 ble lansert på WWDC i fjor, kunne PastePal ta steget fullt ut, og kun bruke SwiftUI.

- Jeg bestemte meg for å skrive om PastePal fra bunnen av, og bare beholde utklippstavle-koden. Resultatet er en helt ny utgivelse av PastePal, forteller Pham til kode24.

PastePal 2.0 kom ut på nyåret, koster 109 kroner for en universal app som fungerer både på macOS, iOS og iPadOS, og har gått sine seiersrunder på blant annet Product Hunt, "Best apps of the month" på App Advice og på franske Mac Generations.

- Nedlastningene strømmer på når nettsider skriver om PastePal, men faller like etter, innrømmer Pham, som sier seg fornøyd med salget, men ikke ønsker at kode24 skal publisere konkrete salgstall.

Med en app som PastePal, kan du kjøpe appen én gang, og late den ned til både iPhone, Mac og iPad.
Med en app som PastePal, kan du kjøpe appen én gang, og late den ned til både iPhone, Mac og iPad. Vis mer

Holder seg til Apple-verktøy

PastePal er skrevet i Swift, med SwiftUI for brukergrensesnittet, og Apples egen Core Data for database.

Core Data sin CloudKit gjør det visstnok lekende lett å også lagre data på brukerens iCloud-konto, for synkronisering av utklippstavla på tvers av macOS, iOS og iPadOS.

- Logging av systemets utklippstavle kan høres skummelt ut, så jeg prøver å begrense mengden av avhengigheter og tredjeparts-biblioteker, forteller utvikleren.

Han bruker derfor bare noen få open source-biblioteker, som han går nøye gjennom først. Men stort sett holder han seg altså til Apples egne verktøy og API-er, for som han sier:

- Er det én ting jeg har lært om iOS- og macOS-utvikling, så er det å holde seg til Apples SDK-er så mye som mulig. Tredjeparts-rammeverk kommer og går, uansett hvor fancy de er. Den eneste koden som forblir og alltid blir forbedra, er Apple sine rammeverk.

- Jeg gjenbruker deler av macOS-koden, spesielt hvordan utklippstavla og databasen fungerer, for iOS-utgaven, forteller Khoa Pham om PastePal sin iOS-versjon. 📸: Ole Petter Baugerød Stokke
- Jeg gjenbruker deler av macOS-koden, spesielt hvordan utklippstavla og databasen fungerer, for iOS-utgaven, forteller Khoa Pham om PastePal sin iOS-versjon. 📸: Ole Petter Baugerød Stokke Vis mer

Mac-program, iPhone-app, M1-klar

PastePal blir først utvikla til Mac, og så modifisert for å fungere på iPhone og iPad. Visstnok motsatt av den vanligste metoden for å utvikle slike universal-apper.

- Jeg gjenbruker deler av macOS-koden, spesielt hvordan utklippstavla og databasen fungerer, for iOS-utgaven. Det meste av brukergrensesnittet deler også den samme SwiftUI-koden, forklarer Pham til kode24.

- Hva med å få Mac-appen til å fungere på de nye M1-maskinene, må du gjøre noe for å få til det?

- Da de nye Apple Silicon-Mac-ene ble lansert, fikk Xcode ett nytt alternativ for å lage apper som fungerer på både de og Intel-baserte Mac-er. Fordi PastePal er ren Swift-kode, uten noen statisk maskinkode, kompilerer og kjører den fint på M1-maskiner, forteller utvikleren.

Her ser du hvordan Khoa Pham enkelt kan få appen sin kompilert til de nye M1-maskinene.
Her ser du hvordan Khoa Pham enkelt kan få appen sin kompilert til de nye M1-maskinene. Vis mer

Hard konkurranse

- Å utvikle programvare virker ikke å være så populært for tida - de fleste vi snakker om er mer opptatt av mobil-apper og web-løsninger. Hvordan synes du det er å lage programvare?

- Andelen utviklere som lager programvare til macOS er bitteliten sammenlikna med iOS-utviklere. Og som oftest finner du ikke løsniniger på problemene dine, fordi så få har spurt om det. Men det kule med macOS-utvikling er at jeg kan lage apper for ting jeg virkelig trenger daglig, som PastePal, svarer Pham.

- Det finnes en del "clipboard managers" til Mac der ute fra før av. Hva gjør din som ikke konkurrentene gjør?

- Jeg bryr meg egentlig ikke om hvordan andre apper virker, begynner Pham.

- Kort tid etter jeg lanserte PastePal, begynte folk å fortelle meg om deres opplevelser med andre slike apper. Det var da jeg fikk vite om nærmere 20 andre clipboard managers, smiler han.

- Men fra et teknisk standpunkt, viser PastePal hvordan SwiftUI kan brukes til å bygge funksjonsrike applikasjoner, på tvers av plattformer, som også kjører bra.