Terminologi Flashcards
Hvad er identifiable?
I Swift og SwiftUI refererer “Identifiable” til en protokol kaldet Identifiable, der kræver, at en type har en unik identifikator (id). Dette gør det muligt for Swift at skelne mellem forskellige instanser af objektet. I SwiftUI bruges dette ofte til at optimere opdateringer af brugergrænseflader, især i komponenter som List, hvor identificerbare objekter lettere kan opdateres og vises korrekt.
Hvad er en initializer?
En constructor
Hvad er optionals?
Optionals i Swift er en mekanisme, der tillader variabler at have en “tom” værdi ved at tilføje et spørgsmålstegn efter typen (f.eks., Int?). Dette adskiller sig fra non-optional typer, som altid skal have en værdi. Optionals bruges til at håndtere situationer, hvor en værdi muligvis ikke er tilgængelig eller er ukendt. Du kan bruge optionals til at skrive sikker kode ved at tvinge en eksplicit kontrol for værdiens tilstedeværelse, inden du forsøger at bruge den.
Hvad er @State?
@State er en attribut i SwiftUI, der bruges til at erklære egenskaber, som kan ændre sig og automatisk opdatere brugergrænsefladen ved ændringer. Den angiver, at SwiftUI skal overvåge og reagere på ændringer i den mærkede egenskab, hvilket muliggør opdateringer af visninger i realtid. @State-egenskaber skal være deklareret som private og bruges primært i views for at opnå en reaktiv og dynamisk brugergrænseflade.
Hvad er @StateObject?
Det er en propertywrapper som holder property’en i live gennem hele programmets levetid. Denne gemmes andetsteds i memory end view’et. Så når view’et bliver nedlagt, så findes property’en stadig.
Eksempler: Statecontroller
Hvad er en propertywrapper?
En property wrapper i Swift er en mekanisme, der giver en måde at tilføje ekstra funktionalitet til egenskaber. Den tillader udviklere at definere brugerdefineret adfærd, når en egenskab læses eller ændres, uden at ændre den underliggende kode. Udviklere kan også oprette deres egne brugerdefinerede property wrappere for at genbruge bestemt funktionalitet i deres kode.
Eksempler: @EnvironmentObject, @Published og @ObservedObject
Hvad er @EnvironmentObject?
@EnvironmentObject er en propertywrapper i SwiftUI, der giver en enkel måde at dele en instans af en klasse eller et objekt på tværs af flere views i din app. Den bruges til at injicere et delt objekt i SwiftUI’s miljø, hvilket gør det tilgængeligt for alle underordnede views. Dette er nyttigt for at opretholde en centraliseret datakilde, så ændringer i dette objekt automatisk opdaterer alle views, der bruger det. @EnvironmentObject kræver, at objektet er registreret i SwiftUI’s miljø ved hjælp af EnvironmentObject-modifikatoren på det øverste niveau af view-hierarkiet.
Eksempel: Statecontroller skal typisk sendes mellem views som et @EnvironmentObject
Hvad er dependency injection?
Dependency injection er en softwareudviklingspraksis, hvor objekter eller komponenter modtager deres afhængigheder fra en ekstern kilde i stedet for at oprette dem selv. Dette hjælper med at løsne koblingen mellem komponenter og gør koden mere modulær, fleksibel og testbar.
I stedet for at oprette objekter direkte inden for en klasse eller en metode, modtager klassen eller komponenten de nødvendige afhængigheder som parametre eller via egenskaber. Dette gør det lettere at udskifte eller ændre afhængigheder uden at ændre selve koden, hvilket bidrager til en mere vedligeholdelsesvenlig og skalerbar arkitektur.
Eksempler på DI er: @EnvironmentObject
Hvad er forskellen på @State og @StateObject?
I korte træk er forskellen, at @State er designet til at håndtere lokalt view-state, mens @StateObject er beregnet til at håndtere objektets state, især objekter, der eksisterer uden for viewet og skal bevare deres tilstand mellem view-opdateringer.
Eksempler: @State bruges til en int counter og @StateObject bruges til en var stateController
Hvad er forskellen på ViewModel i MVVM og Controller i MVC?
Det er mere eller mindre det samme.
Hvad betyder event-driven?
Det er events som brugeren starter, som gør at properties som fx @Published, @OberservableObject og @EnvironmentObject at deres værdi ændres. Derefter bliver alle de instanser som ‘lytter’ til den property opdateret.
Hvilke tre overordnede typer findes der i Swift?
Class, Struct og ENUM
Læs mere: https://levelup.gitconnected.com/demystifying-struct-class-and-enum-in-swift-5-43dde089e96a
Hvad er forskellen på Class og Struct?
Den mest væsentlige forskel er at class er af reference-type og struct er af value-type. Det gør Struct mere lightweight, og altså generelt bedre at benytte, medmindre der er behov for der altid kun er 1 instans af et object. Fx StateController.
Så når en struct bliver lavet bliver det altid en kopi og ved en class er det altid originalen, eller en reference til originalen.
Struct: Ændringer i en instans påvirker ikke andre instanser, da de er uafhængige kopier af data.
Class: Ændringer i en instans af en class påvirker alle, der deler den samme reference, da de deler dataene i hukommelsen.