Lagerindelad arkitektur för KMP
Separera data, domän och presentation på ett tydligt sätt.
Lagerindelad arkitektur för KMP är en gratis lektion i Kotlin Multiplatform Academy på CoddyKit. Detta är lektion 1 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.
En kodbas, många appar
När din KMP-app växer kan den delade koden bli svåröverskådlig. En tydlig lagerindelad arkitektur håller varje del på sin plats, så att båda apparna förblir enkla att ändra.
Tre klassiska lager
De flesta KMP-appar landar i tre lager: data, domän och presentation. Varje lager har en uppgift och beroenden flödar i en enda, förutsägbar riktning.
Datalagret
Data-lagret kommunicerar med omvärlden: Ktor för HTTP och SQLDelight för lagring. Det hämtar råa byte och skickar ren data uppåt samtidigt som detaljerna döljs.
Domänlagret
Domän-lagret innehåller verksamhetsregler och modeller. Det känner inte till HTTP eller SQL, så det förblir rent, portabelt och mycket enkelt att testa.
Presentationslagret
Presentations-lagret förbereder tillstånd för skärmen. Delade ViewModels finns här och omvandlar domändata till den StateFlow som varje gränssnitt samlar in.
Beroenden pekar inåt
Grundregeln är att yttre lager beror på inre lager, aldrig tvärtom. Presentationen känner till domänen; domänen känner inte till något av sina grannlager.
Kommunicera via interface
Lager kopplas samman via interfaces, inte konkreta klasser. Domänen deklarerar vad den behöver och data tillhandahåller implementationen, så att delar kan bytas fritt.
interface UserRepository {
suspend fun load(id: String): User
}Modeller per lager
Varje lager kan äga sina egna strukturer: en nätverks-DTO i data och en ren modell i domänen. Mappning mellan dem hindrar API:ets egenheter från att läcka in i reglerna.
Varför separera
Separation lönar sig när kraven ändras. Byt ut ett REST-API mot GraphQL, så ändras bara data-lagret; domänen och presentationen märker inget.
Allt finns i shared
Data, domän och presentation kan alla ligga i commonMain. Android och iOS återanvänder hela stacken och tillhandahåller bara den slutliga nativa skärmen.
Börja enkelt
Du behöver inte tio lager från dag ett. Börja med dessa tre, håll beroendepilarna rena och låt strukturen växa först när det verkligen behövs. 🙂
Snabbkontroll
Åt vilket håll bör beroenden flöda mellan lager?
Sammanfattning
Du delade upp den gemensamma koden i data, domän och presentation, riktade beroenden inåt och kopplade samman lagren via interfaces. Tydliga gränser, enkla ändringar. 🎉
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 ”Lagerindelad arkitektur för KMP” gratis?
Ja – hela texten till ”Lagerindelad arkitektur för KMP” 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 ”Lagerindelad arkitektur för KMP”?
Separera data, domän och presentation på ett tydligt sätt. 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 1 av 4.
Hur lång tid tar lektionen ”Lagerindelad arkitektur för KMP”?
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
- Lagerindelad arkitektur för KMP
- Use cases och domängränser
- Dela upp delad kod i moduler
- Avgör vad som ska förbli Native