Tags: app / iOS / UI / UI/UX / UX / Xcode

FØRSTE PROJEKT TIL MIN PORTFØLJE

Et yderst spændende projekt med reel potentiale!

På 4. semester af datamatikeruddannelsen har jeg valgt at fordybe mig i emnerne “App-udvikling” og “UI/UX”. Jeg har specifikt valgt at fokusere på app-udvikling til iOS-enheder og UI/UX til mobile enheder.

Dette indebærer blandt andet, at jeg må sætte mig grundigt ind i Apples guidelines og UI/UX-principper, selvom jeg også har brugt tid på mere generelle principper.

Projektet omhandler udviklingen af en mobilapp til en forsker ved Hammel Neurocenter. Opgaven består i grove træk i, at appen i første omgang skal bruges af personer med Cerebral Parese (herfra omtalt som CP) til at registrere daglige aktiviteter, hvorefter forskeren kan generere en automatisk rapport baseret på brugernes indtastninger. Appen skal også give brugerne mulighed for at få indsigt i, hvorfor de føler, som de gør. Da CP er en hjerneskade, har mange patienter svært ved at forstå, hvorfor de for eksempel føler sig stressede, nedtrykte, eller godt tilpas.

Da jeg startede på dette semester, var jeg ikke klar over, at Swift og SwiftUI er to forskellige ting, så der var en lang vej foran mig, derudover var Xcode også helt nyt for mig. Samtidig skulle jeg nu bruge Apples styresystem og blev derfor også nødt til at skifte Visual Studio ud med VSCode. Der gik ikke længe, før jeg måtte indse, at de læringsmål og den læringsplan, jeg havde sat i starten af semestret, måtte revurderes og skrives fuldstændig om. Det var lidt af et slag i maven, og jeg har derfor forsømt min portefølje en smule og kun lavet korte notater i min notesbog om, hvad jeg har foretaget mig de forskellige dage. Mine nye læringsmål kan ses her: Læringsmål 4. semester.

uge 34 – 35

En uheldig start

Jeg havde misforstået hvornår semesterstart lå og havde planlagt en vagt på job mandag den 19. samt at tage på ferie med mit job fra torsdag d. 22. – onsdag den 28. hvor jeg fik fri på Bornholm om morgenen og skulle så hjem derfra. Så reelt havde jeg 3 studiedage på de to første uger.

Jeg havde heldigvis fået taget min bærbar og et par bøger med, så jeg fik opsat nogle læringsmål og en læringsplan (kan ses her for UI/UX og her for Swift) for det jeg regnede med, at jeg skulle arbejde med i løbet af semestret.

Jeg var også heldig, at jeg havde mulighed for at deltage i alle planlagte møder på teams, jeg nåede endda lige mødet med vores PO i lufthavnen inden boarding.

Men jeg fik kigget på en indledning til UX og primært set noget video på to Pluralsight kurser.

Jeg har i denne periode fået en grundforståelse af Swift, en kort introduktion til produkt design samt læst om UX koncepter, hvilke færdigheder en UX designer skal trække på og set kursus om prototype teknikker for UX design.

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Kurser

Jeg mener, at jeg i perioden, på et mindre niveau har opnået mine læringsmål 1, 6 og 7 under “Viden”

Viden – Jeg har viden om

1. Swift's teori og praksis og hvordan sproget bruges til at bygge moderne applikationer.

6. UX (User Experience) teori og metoder til at skabe intuitive og tilfredsstillende brugeroplevelser.

7. Relevansen af UI og UX design i IT-faget og hvordan det påvirker softwarebrug og anvendelighed.

uge 36 – 37

Planlægning af samarbejde i gruppen samt tidlige artefakter

I disse to uger brugte vi en del tid i gruppen på, at lave indledende artefakter såsom use cases, user stories, wireframes / mockups, domænemodel og DCD . Da det har været svært, at finde et entydigt billede af, hvornår det kaldes et high “fidelity wireframe” eller et “mockup” bruger jeg termerne i flæng. Dog vil jeg ikke bruge termen mockup for low fidelity wireframes. Ressourcerne brugt til ovenstående er noget vi hat lært på tidligere semestre, dog med undtagelse af wireframes som jeg er dykket dybere ned i qua mit valg af fag.

Jeg prøvede at fortsætte med, at læse op på Swift og brug af UI/UX i en bæredygtig sammenhæng, men fandt i løbet af disse to uger ud af, at min tilgang til semestret var sat helt forkert op og mere eller mindre umulig at opnå, da jeg ikke havde noget dybere forudforståelse for de emner jeg havde valgt på 4. semester.

Jeg brugte i disse to uger primært tid på at få VSCode til at køre og finde ud af hvordan man overhovedet skulle skifte mellen projekter i samme solution, få installeret de forskellige extensions jeg tænkte jeg fik brug for, installeret Docker Desktop og i det hele taget få sat min Mac op til Development da jeg i tidligere semestre har arbejdet på Windows og i Visual Studio 2022.

Derudover har jeg læst om typografi og fonte og hvordan de kan påvirke ens design. I forhold til vores app, tænker jeg at vi til at starte med går med Apples system font SF da den allerede er optimeret til forskellige skriftstørrelser, skærmstørrelser, tilgængelighed osv.

Jeg har i denne periode fået en okay forståelse af hvad VSCode er og hvordan det er anderledes i forhold til Visual Studio 2022. Derudover har jeg efterhånden fået en god forståelse for brugen af Swift playgrounds og gennem brugen af Swift playgrounds lært en lille smule om Apples designprincipper.

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Kurser

Jeg mener, at jeg i perioden, har opnået mit læringsmål 3 under viden og begyndt på 5, 6 og 7 under færdigheder.

Viden – Jeg har viden om

3. VSCode's funktioner og tilpasningsmuligheder til udvikling af it-projekter.

Færdigheder – Jeg kan

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.

7. Formidle resultater og indsigter om UI- og UX-designs rolle i softwareudviklingsprojekter.

uge 38 – 39

Excitement og stress 🥳 🤯

4 uger er allerede gået og stressen begynder stille og roligt at kravle mig op af ryggen, da der ikke rigtig er kodet noget endnu. På dette tidspunkt har jeg stadig ikke rigtig fundet ud af, at SwiftUI er sit eget framework og føler stadig at jeg famler lidt i kurser om Swift og App’en Swift Playgraunds. Men efter at have set kurset om iOS 14 (som godt nok er lidt outdated), blev jeg klogere og følte nu snart jeg begyndte at have et grundlag for at komme igang med koden og med Xcode.

I denne periode fik jeg oprettet et spørgeskema til folk med CP, for at få en bedre forståelse af, hvordan de ville bruge vores App og for derudfra at kunne lave nogle Personaer der tager udgangspunkt i Lene Nielsens teorier. Samtidig ville det give nogle indikationer af hvilke udfordringer vi måske skulle tage hensyn til i vores app i forhold til tilgængelighed.

Det kan ses her: Google Forms

For at være helt ærlig har jeg ikke følt at Lene Nielsens tilgang til personaer har givet vores projekt meget værdi. En anden gang ville jeg nok personligt vælge en anden tilgang – måske mere i retning af den beskrevet i bogen: Designing User Experience.

Derudover har jeg kigget på ikonografi og vi bruger selvfølgelig Apples SF symbols til vores iPhone app hvilke jo også passer sammen med deres skrifttype SF. Men jeg har valgt at laveikoner med tekst i første omgang da vores app hovedsaligt skal bruges af flok med hjerneskader. Så for at den kan forståes af så mange som muligt, har jeg her valgt at helgardere mig med ikon + tekst selvom det i teorien fra “A Developers Guide to UI Design Principles” anbefales kun at bruge den ene eller den anden. Men Apple selv er ikke helt konsekvent omkring det og kan ikke umiddelbart finde nogen “best practice” i deres designguide. 

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Kurser

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået mine læringsmål 2 og 5 under viden, og mine læringsmål 5 og 6 under færdigheder.

Viden – Jeg har viden om

2. SwiftUI's opbygning og hvordan det letter udvikling af brugergrænseflader til Apple-enheder.

5. Grundlæggende UI (User Interface) designprincipper og deres betydning for brugeroplevelsen.

Færdigheder – Jeg kan

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.

uge 40 – 41

Der er huld igennem..! 🥳

Xcode

Kom endelig igang med at kode på app’en! Vi havde fået lavet et HTTP endpoint i vores backend API og der var lidt nervøsitet i gruppen om hvorvidt et program skrevet i Swift eller Kotlin kunne tale sammen med en backend skrevet i C#. Så min fornemste opgave blev at få huld igennem til API’en og få et 200 respons tilbage. Det krævede mange forsøg, meget YouTube materiale og en del frem og tilbage med ChatGPT. Efter en god uges tid fik jeg endelig huld igennem og selvfølgelig var det bare en lille dum fejl der gjorde det ikke gik.

Nu var jeg endelig kommet igang med at kode på programmet og vi havde haft en del møder med vores PO allerede, hvor vi havde vist fine fremskridt i form af artefakter men ingenting kode/prototype endnu. Jeg begyndte derfor at koncentrere mig mere om at få bygget “bare et eller andet” til hende, i stedet for at fokusere mere på at lære de forskellige frameworks jeg kunne bruge bedre at kende.

Set i bakspejlet ville jeg nok have fået en bedre læring ud af, at lave flere små programmer der hver rummede ét ekstra framework for at få en dybere forståelse og så derefter prøve at implementere det i vores app. 

UI/UX

Derudover valgte vi at tilføje en progress bar til vores “tilføj indlægs” process. Vi havde en ide om, at det ville tilføje noget tilfredsstillelse til brugeren, men havde ingen ide om, hvor meget mykologi der ligger bag. Utroligt spændende materiale at dykke ned i! Og så er der både gode og dårlige måder at gøre det på! For eksempel er mit spindende progress wheel herover ingen hjælp for brugeren ud over, at vedkommende kan se, at systemet prøver at gøre et eller andet. Men er det stuck eller hvad sker der. Uden noget information om, hvad der sker eller hvor langt i processen systemer er, kan det drejende hjul give mange bekymringer.

Jeg har også i denne periode kigget på farver og deres indflydelse på UX. Jeg har indtil nu ikke rigtig forstået formålet med, at lave et moodboard! Det gav simpelthen absolut INGEN mening for mig at gøre, men efter at have stiftet bekendtskab med Adobe Color giver det lige pludselig meget mere mening! Samtidig har jeg lært lidt om farvevalg og hvad forskellige farver betyder følelsesmæssigt og kan herefter konstatere, at den farve jeg har valgt at bruge som vores primære farve i appen har vist sig at være god. Som teorien om farver også nævner: “Vi har alle en mavefornemmelse for farver”. 

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Kurser

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået mit læringsmål 4 under viden, og mine læringsmål 1, 5 og 6 under færdigheder.

Viden – Jeg har viden om

4. Xcode's udviklingsmiljø og dets brug til iOS- applikationsudvikling.

Færdigheder – Jeg kan

1. Udvælge og beskrive problemstillinger i Swift-programmering og gennemføre litteratursøgning på området.

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.

uge 42 – 43

Hvorfor bliver jeg ved med at ødelægge koden?!

Nu var det bare med at komme derudaf og få skrevet noget kode, men blev selvfølgelig ved med at støde på problemer og prøvede hele tiden at fikse dem på forskellige måder, indtil jeg havde prøvet så mange forskellige ting, at jeg ikke kunne finde tilbage til før problemet opstod. Så det endte med slettelse af projekt og oprettelse af nyt op til flere gange – så bare kald mig sindsyg…

Insanity is doing the same thing over and over again and expecting different results” – Albert Einstein.

Det er på tide at få styr på Git integration i Xcode!

Så ugerne går primært med at få sat git op, kode på applikationen, fejle i git og forsøge igen. Heldigvis fik jeg nogenlunde styr på git integrationen i Xcode og har ikke skrottet projektet siden da.

Derudover har jeg arbejdet på og udforsket forskellige typer af UX mapping. Det er her også gået op for mig, at nogle af disse havde været fordelagtige, at lave før vi kastede os us i wireframes.

Det sidste projekt jeg arbejdede på: https://github.com/cply-aps/Neu3.git

Tidligere projekt som blev skrottet fordi jeg endnu ikke kunne finde ud af at bruge Git integrationen i Xcode:

https://github.com/cply-aps/pt1_0_Neurocenter_Hammel.git

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået mine læringsmål 2, 4 og 7 under færdigheder samt 3 og 6 under kompetencer.

Færdigheder – Jeg kan

2. Anvende SwiftUI til at designe og opbygge intuitive brugergrænseflader med Apple’s designprincipper.

4. Navigere og anvende Xcode's forskellige værktøjer til udvikling og testning af iOS-applikationer.

7. Formidle resultater og indsigter om UI- og UX-designs rolle i softwareudviklingsprojekter.

Kompetencer – Jeg kan

3. Mestre Xcode’s avancerede funktioner og anvende dem til komplette appudviklingsprocesser.

uge 44 – 45

Brugt alt for meget tid på VSCode og adgang til API’en…

I disse to uger har vi haft en del problemer med adgang til ApI’en efter nogle opdateringer på denne og brugt et par dage på at trouble shoote, indtil vi fik huld igennem igen. Derudover begyndte jeg at kigge på at arbejde med lokalt JSON, så jeg kunne arbejde videre på app’en uden endpoints’ne i backenden. Jeg fandt i slutningen af den sidste uge frameworket SwiftDate som er ret nyt og fik lyst til at kigge nærmere på det.

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået (i så vidt en strækning som relevant for vores projekt) mit læringsmål 3 under færdigheder.

Viden – Jeg har viden om

2. SwiftUI's opbygning og hvordan det letter udvikling af brugergrænseflader til Apple-enheder.

5. Grundlæggende UI (User Interface) designprincipper og deres betydning for brugeroplevelsen.

Færdigheder – Jeg kan

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.

uge 46

SwiftData, Prototype & Styleguide

Var faldet over SwiftData Frameworket og synes det lød yderst spændende, så besluttede at lave en prototype til vores kunde med SwiftData i stedet for vores egen backend. På den måde kunne jeg ret hurtigt lave en app med persistens og som kunne vise de mest vigtige funktioner som appen skulle have. Det lyder også til, at det skulle være forholdsvis nemt, at skifte til en anden database senere uden, at skulle ændre end SwiftData Kode, men det bliver et projekt for næste semester.

Derudover har vi kigget på styleguides i gruppen i denne uge. Det blev desværre ikke til meget mere end det. Men jeg faldt over et værktøj til Mac kaldet “Sketch”, som jeg har taget et tættere kig på selv da de andre i gruppen ikke kan bruge det. 

Blogindlæg for en dybere gennemgang af arbejdet i perioden:

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået mine læringsmål 1, 2, 4 og 5 under kompetencer.

Viden – Jeg har viden om

2. SwiftUI's opbygning og hvordan det letter udvikling af brugergrænseflader til Apple-enheder.

5. Grundlæggende UI (User Interface) designprincipper og deres betydning for brugeroplevelsen.

Færdigheder – Jeg kan

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.

uge 47 – 48

Skulle vi ikke aflevere en Portefølje til Eksamen..?

De sidste to uger er gået med at arbejde på min portefølje, få skrevet indlæg og sat det op så jeg føler det er forholdsvis brugervenligt.

Porteføljen her har i løbet af de to uger skiftet udsegene mange gange efter at være gået gennem flere brugertests. Heldigvis har jeg haft lettere ved, at teste denne end vores app og kunnet se hvordan folk ville navigere rundt på siden og har på den måde erfaret, at mange af de ting som jeg selv tog forgivet slet ikke var intuitive for folk der så siden for første gang.

Min tilgang til porteføljen har været, at sætte den op i starten af semestret og havde en plan om, at skrive på den løbende, men det virkede i processen bare ikke lige så presserende som at få noget færdigt til vores PO, så det blev til nogle hurtige og få noter i en bog på skrivebordet der så over de sidste to uger er blevet konsolideret til det du ser på denne side. Og ja, det har taget længere tid end hvis jeg havde gjort det i forbindelse med arbejdet, men det har der også ligget en læring i og jeg vil forhåbentlig blive bedre til, at skrive på min side løbende fremadrettet.

 

Andre materialer anvendt i perioden:

Jeg mener, at jeg i perioden, har opnået mine nye læringsmål 2 og 5 under viden, opnået mit læringsmål 5 og 6 under færdigheder.

Viden – Jeg har viden om

2. SwiftUI's opbygning og hvordan det letter udvikling af brugergrænseflader til Apple-enheder.

5. Grundlæggende UI (User Interface) designprincipper og deres betydning for brugeroplevelsen.

Færdigheder – Jeg kan

5. Diskutere samfundsmæssige og etiske aspekter ved UI design, som for eksempel tilgængelighed og brugervenlighed.

6. Analysere og vurdere UX-problemstillinger og identificere løsningsmuligheder for at forbedre brugeroplevelsen.