iOS-utvikling med SwiftUI

Jeg bruker SwiftUI til egne apper for iPhone og iPad. Prosjektene viser erfaring med grensesnitt, lokale data og samspill med resten av et system. Her beskriver jeg arbeidet med Segno og iPad-verktøyene i Memento.

Hva er SwiftUI – kort fortalt

SwiftUI er Apples rammeverk for å bygge brukergrensesnitt med programmeringsspråket Swift. Jeg beskriver hva en visning skal inneholde, og hvordan den henger sammen med appens tilstand. Rammeverket bruker dette til å oppdatere skjermen når data endres.

En native app er laget for operativsystemet den kjører på. På iPhone og iPad kan grensesnittet samarbeide med plattformens funksjoner for blant annet navigasjon og betjening. Arbeid med lyd, filer og lagring krever også andre deler av appen enn SwiftUI.

Det er derfor nyttig å skille mellom skjermen og systemet bak den. En avspillingsknapp er én komponent. Reglene for hva som skjer ved et avbrudd, og hvilken posisjon som lagres, er en annen del av løsningen.

Slik bruker jeg SwiftUI

I Segno arbeider jeg med en lydbokspiller for lange lydfiler brukeren selv har. Bibliotek, avspilling og lyttehistorikk skal være forståelige som deler av samme produkt. SwiftUI brukes til å vise og betjene dette, mens egen logikk håndterer hendelser og fremdrift.

I Memento bruker jeg SwiftUI til iPad-verktøy for lesing og undertekster. Ord kan knyttes til personlig læringsinformasjon, slik at grensesnittet gir tilgang til opplysninger der ordet møtes. Felles funksjoner er samlet i en delt Swift-pakke.

Appene gir også erfaring med å velge hva som bør deles, og hva som må tilpasses en bestemt enhet. En leseflate på iPad og en spiller på iPhone har forskjellige oppgaver, selv om begge trenger tydelig navigasjon.

Prosjekter bygget med SwiftUI

Erfaring

Jeg har koblet WordPress til native apper via sikre REST-API-er.

De egne appene gir i tillegg et grunnlag for å arbeide med sammenhengen mellom grensesnitt og datamodell. I Memento er skillet mellom felles innhold og personlig fremdrift viktig. I Segno er sammenhengen mellom avspillingshendelser og lagret posisjon sentral.

Segno er ikke publisert i App Store. Testene av logikken og simulatoren er heller ikke en fullført akseptansetest på fysiske enheter. Synkronisering mellom enheter er ikke aktivert. Prosjektbeskrivelsen skiller derfor mellom det som er implementert, og det som gjenstår før publisering.

På Lab finnes også mindre appforsøk, blant annet Strength U/L. De løser mindre oppgaver enn prosjektene som har egne presentasjoner.

Erfaringen bak webapplikasjonene

Appene er egne produkter i porteføljen. I oppdrag for bedrifter bruker jeg system- og grensesnitterfaringen til webapplikasjoner for bedrifter, der brukerflyt, data og tilgang må fungere sammen.

Fortell hvilken arbeidsoppgave dere trenger hjelp med. Samtalen starter med behovet og hvem som skal bruke løsningen.

Apples introduksjon til SwiftUI beskriver rammeverket og verktøyene nærmere på engelsk.