Kotlin Multiplatform Academy · Lektion

expect/actual för enhetsinformation

Returnera operativsystemsversion och modell per plattform.

Lektion 2 av 413 steg

expect/actual för enhetsinformation är en gratis lektion i Kotlin Multiplatform Academy på CoddyKit. Detta är lektion 2 av 4. Ni kan läsa hela lektionen gratis nedan och sedan öva praktiskt i webbläsaren med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt. Den ingår i lärvägen för Kotlin Multiplatform Academy, och Era framsteg synkroniseras mellan webben och CoddyKit-appen. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

Från interface till expect

Ibland hoppar ni över ett interface och använder expect/actual direkt. Det deklarerar enhetsinformation en gång i commonMain och implementerar den per plattform.

Deklarera expect-klassen

I commonMain skriver ni en expect-klass med de enhetsuppgifter ni behöver. Det finns ännu inget innehåll, bara formen som båda plattformarna måste uppfylla.

expect class DeviceInfo() {
  val model: String
  val osVersion: String
}

Android-actual

I androidMain läser actual-implementationen Build.MODEL och OS-versionen för att fylla i riktiga Android-värden vid körning.

actual class DeviceInfo {
  actual val model = Build.MODEL
  actual val osVersion = Build.VERSION.RELEASE
}

iOS-actual

I iosMain använder actual-implementationen UIDevice för att rapportera Apples modellnamn och den iOS-version som körs.

actual class DeviceInfo {
  actual val model = UIDevice.currentDevice.model
  actual val osVersion = UIDevice.currentDevice.systemVersion
}

Signaturerna måste stämma överens

Varje egenskap i varje actual måste matcha expect-deklarationen i namn och typ. En enda avvikelse räcker för att kompilatorn ska vägra länka targetsen.

Använd det från delad kod

Gemensam kod skapar DeviceInfo() och läser dess egenskaper som vanlig Kotlin. Rätt actual kopplas in vid byggtillfället för varje target.

fun banner() = "Running on " + DeviceInfo().model

Android får värden från Build

När Android-appen byggs länkas androidMain-actual-implementationen in, så att model returnerar det riktiga hårdvarunamnet från Build-klassen.

iOS får värden från UIDevice

Samma anrop i iOS-frameworket returnerar Apples värden, eftersom iosMain-actual-implementationen i stället kompilerades in i det targetet.

Importerna stannar i source sets

Build finns i androidMain och UIDevice i iosMain. CommonMain importerar aldrig en plattformstyp, vilket är precis det som håller koden delad.

expect/actual jämfört med interface

Ett interface kräver att ni injicerar en implementation. expect/actual länkas automatiskt vid kompileringen, så anroparna behöver bara skapa klassen.

Välj det enklare verktyget

För ett enda tillståndslöst plattformsfaktum är expect/actual det smidigare valet. Välj ett interface när ni också vill kunna byta till fakes fritt.

Snabb kontroll

Fundera på hur rätt enhetsvärden når varje app.

Sammanfattning

Ni deklarerade ett expect DeviceInfo i commonMain och gav Android och iOS varsin actual-implementation med matchande signaturer, så att varje app rapporterar sina egna värden. 🎉

Gratis att börja

Lär dig Kotlin med en AI-lärare – gratis

Skriv och kör riktig kod i webbläsaren, få omedelbar hjälp av en AI-lärare dygnet runt och fortsätt där du slutade – på webben eller i appen.

Kurser
30
Lektioner
120

Vanliga frågor

Är lektionen ”expect/actual för enhetsinformation” gratis?

Ja – hela texten till ”expect/actual för enhetsinformation” kan läsas gratis här på webben. Om Ni vill öva interaktivt med en inbyggd kodredigerare och en AI-handledare som är tillgänglig dygnet runt och låsa upp resten av kursen i Kotlin Multiplatform Academy, kan Ni uppgradera till CoddyKit PRO. Kursen i Kotlin Multiplatform Academy innehåller totalt 4 lektioner.

Vad lär jag mig i ”expect/actual för enhetsinformation”?

Returnera operativsystemsversion och modell per plattform. Ni övar på Kotlin Multiplatform Academy med praktisk kod som körs direkt i webbläsaren, medan en AI-handledare som är tillgänglig dygnet runt svarar på Era frågor under lektionen.

Behöver jag någon erfarenhet för att börja lära mig Kotlin Multiplatform Academy?

Du behöver inga förkunskaper. Utbildningen i Kotlin Multiplatform Academy på CoddyKit är upplagd för allt från nybörjare till avancerade elever, så att du kan börja här eller från början och gå fram i din egen takt. Detta är lektion 2 av 4.

Hur lång tid tar lektionen ”expect/actual för enhetsinformation”?

De flesta CoddyKit-lektioner tar cirka 5–10 minuter. Varje lektion är kort och interaktiv, så att du gör stadiga framsteg och kan fortsätta precis där du slutade – på webben eller i appen.

Kan jag skriva och köra kod i den här Kotlin Multiplatform Academy-lektionen?

Ja. Varje Kotlin Multiplatform Academy-lektion innehåller en inbyggd kodredigerare, så att du kan skriva och köra riktig kod direkt i webbläsaren och få omedelbar AI-feedback – utan lokal installation.

Alla lektioner i den här kursen

  1. Utforma ett kapabilitetsgränssnitt
  2. expect/actual för enhetsinformation
  3. Filsystem och sökvägar per plattform
  4. Injicera plattformsimplementationer
← Tillbaka till Kotlin Multiplatform Academy