iOS Flashcards

1
Q

Hvad kendetegner Swift kode?

A

Deklarativt og meget typestærkt. En variabel skal tildeles værdi ved deklarationspunktet.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Hvad er det underliggende sprog til Swift?

A

C

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Hvad er forskellen på at deklarere en “let” vs en “var”?

A

Let er en konstant, og var er en variabel - og kan ændre værdi løbende.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Hvilke tre typer baserer Swift sig på?

A

Structures, Enumerations og Classes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Hvad en structure i Swift?

A

Minder meget om en class - kan have constructor, variable og metoder. Er value type - modsat en Class type. Betyder at der ved initialisering oprettes en kopi.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Hvad er en enumeration i Swift?

A

Kan bruges til at definere specifikke variable - kan have typen Optional.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Hvad er typen Optional?

A

En Optional kan både have en værdi eller være tom. Har derfor en værdi ‘none’ og en værdi ‘some(T)’. En Optional kan skifte type undervejs. Hvis den først deklareres som en String kan den godt senere ændres til en Int.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Hvad er vigtigt at bruge når værdien af en Optional skal printes med et simpelt print() statement?

A

En Bang operator bruges til at tilsidesætte enhver form for check. Gør det muligt at få en null-pointer. I stedet er det bedre at lave et if statement der tjekker om Optional er tom.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Hvad er en class i Swift?

A

Har constructor, variable og metoder som vi kender det. Muliggør klassenedarvning. Er reference type.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

Hvad viser billedet?

A

Viser princippet med Optional Unfolding. Her tjekkes det om Optional værdien er tom ved at assigne den til en anden variabel. Kun hvis den ikke er tom, kan værdien printes.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

Hvad er Optional Unfolding? Hvorfor er det smart?

A

Her tjekkes det om Optional værdien er tom ved at assigne den til en anden variabel. Kun hvis den ikke er tom, kan værdien eksempelvis printes. Det er smart fordi man på den måde undgår null-pointer exceptions.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

Hvad er fordelene ved at bruge struct som udgangspunkt?

A
  1. Fylder mindre i memory
  2. Structs er value type og er derfor nemmere at oprette og nedlægge
  3. Behøves ingen constructor(Generer selv en constructor på baggrund af instans variable)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Hvad er nødvændig for at en struct selv kan generere sin egen constructer?

A

At alle instans variable har en værdi

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Hvorfor bruge extensions over nedarvning?

A
  1. For at få en flad hiarki struktur
  2. Sikre mindre kobling
  3. Kan bruges til at udvide ikke kun klasser men også structs og enums
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Hvad er en protokol i swift?

A

Det er det samme som et interface i Java eller C#

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Hvad vil det sige at swift er reaktiv?

A

Det betyder at SwiftUI nedlægger og opretter viewet hver gang der ændres i data.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
17
Q

Hvad er et view bag kulisserne i SwiftUI?

A

Det er et struct og implementere view protokollen

18
Q

Hvad muliggør at SwiftUI kan være reaktiv?

A

At body i viewet er en variabel, og at dataændringer registreres med @State

19
Q

Hvad er en View modifier?

A

Det er en modifier som kan ændre på hvordan er view ser ud fx .padding.

20
Q

Hvad er en computed property?

A

En variabel som har knyttet en funktion til sig (Det kendes ved at der er tuborg klammer efter deklerationen)

21
Q

Hvad er fordelen ved en computed property?

A

Allokerer ikke meget plads i memory

22
Q

Hvad er en opal type?

A

Det er en type som er ligeglad med sin retur type bare den implementere en specifik protokol som fx var body: some View{}

23
Q

Hvad er en trailing closure?

A

Den er en closure i swiftUI som gør koden mere læsbar ved at den sættes udenfor parenteserne.

24
Q

Hvad er Single source of truth?

A

Det er at man skal definere hvem der har ejerskabet over data.

25
Q

Hvad er MVVM?

A

En af to forskellige arkitekturer der typisk bruges til kodning af iOS applikationer. Har tre lag: View, ViewModel og Model.

26
Q

Hvad kendetegner View laget i MVVM arkitekturen?

A
  • Repræsenterer alt hvad brugeren ser på grænsefladen.
  • Laget bør være løst koblet til ViewModel laget. Dette gøres ved at holde “single source of truth” hos ViewModel og blot instantiere et state objekt I viewet.
27
Q

Hvad kendetegner ViewModel laget i MVVM arkitekturen?

A

Forbinder View og Model lagene. Tager sig af alt andet logik som data storage, netværk osv.

28
Q

Hvad kendetegner Model laget i MVVM arkitekturen?

A
  • Repræsenterer applikationens data og “domain business logic”.
  • Det er også på modellaget at man foretager data transformationer eks. JSON encoding og decoding.
29
Q

I hvilke tilfælde kan det være relevant at bruge App filen som “single source of thruth”?

A

I de tilfælde hvor en mængde data skal bruges af flere eller alle views, er det uhensigtsmæssigt at sende dataen rundt mellem views og viewmodels. I stedet bliver App filen til “single source of thruth” for det pågældende data.

30
Q

Hvad er en Form i SwiftUI?

A

En form er blot et ListView med en række egenskaber. Eks. “section” som indrammer I en sektion, eller “picker” som muliggør valgmulighed mellem flere unikke elementer.

31
Q

Hvad er Codable protokollen? Hvor implementeres den?

A

En protokol der bruges til at konvertere Swift objekter til og fra JSON. Dækker over både protokollerne Decodable og Encodable.
Implementeres i en model klasse.

32
Q

Hvad er kendetegnet ved Decode protokollen?

A

Decode går fra JSON til et Swift objekt

33
Q

Hvad er kendetegnet ved Encode protokollen?

A

Encode går fra et Swift objekt til JSON

34
Q

Hvad er CodingKeys i forbindelse med JSON Encoding?

A

CodingKeys er et enum der kan bruges i forbindelse med encoding. Her kan man definere andre navne til modelklassens attributter når der er konverteret til JSON

35
Q

Hvad er en decoding strategi?

A

En decoding strategy kan tilføjes til en JSON decoder for at decode på en specifik måde.

36
Q

Hvad er en delegate?

A

En klasse A har en delegate som er klasse B.

Klasse B kan så implementere metoder der er defineret i klasse A.

Når specifikke værdier ændrer sig i klasse A, vil de implementerede metoder i klasse B køres.

37
Q

Hvad er en property wrapper?

A

Alt med @:
- @State
- @ObservedObject
- Osv.

38
Q

Hvilke forskellige måder findes der at gemme data lokalt på i Swift?

A

UserDefaults:
- Et map med key/value par som vi kan gemme og hente.
- Bruges til simple data:
- Et billede
- Et brugernavn

FileManager:
- Giver adgang til dokumenter lokalt
- Gør det muligt at gemme noget data i “sandboxen” for projektet.

Core Data
- Fungerer på præcis samme måde som Entity Framework i .Net

39
Q

Hvad er persistering?

A

Persistering er læse og skrive data
som således “huskes” fra gang til gang når vi bruger vores app.

40
Q

Hvilken metode til persistering bruges her?

A

User defaults.

41
Q

Hvilken metode til persistering bruges her?

A

File manager.