expect/actual för enhetsinformation
Returnera operativsystemsversion och modell per plattform.
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().modelAndroid 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. 🎉
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
- Utforma ett kapabilitetsgränssnitt
- expect/actual för enhetsinformation
- Filsystem och sökvägar per plattform
- Injicera plattformsimplementationer