Lagdelt arkitektur for KMP
Skill data, domene og presentasjon på en ryddig måte.
Lagdelt arkitektur for KMP er en gratis leksjon i Kotlin Multiplatform Academy på CoddyKit. Dette er leksjon 1 av 4. Du kan lese hele leksjonen gratis nedenfor – og deretter øve praktisk i nettleseren med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt. Den er en del av læringsløpet i Kotlin Multiplatform Academy, og fremdriften din synkroniseres mellom nettet og CoddyKit-appen. Kurset i Kotlin Multiplatform Academy inneholder totalt 4 leksjoner.
Én kodebase, mange apper
Etter hvert som KMP-appen vokser, kan den delte koden bli uoversiktlig. En tydelig lagdelt arkitektur holder hver del på sin plass, slik at begge appene fortsatt er enkle å endre.
Tre klassiske lag
De fleste KMP-apper ender opp med tre lag: data, domene og presentasjon. Hvert lag har én oppgave, og avhengighetene går i én forutsigbar retning.
Datalaget
Data-laget kommuniserer med omverdenen: Ktor for HTTP og SQLDelight for lagring. Det henter rå byte og sender rensede data oppover, samtidig som detaljene skjules.
Domenelaget
Domene-laget inneholder forretningsreglene og modellene. Det vet ingenting om HTTP eller SQL, så det forblir rent, portabelt og svært enkelt å teste.
Presentasjonslaget
Presentasjons-laget klargjør tilstanden for skjermen. Delte ViewModels hører hjemme her og gjør domenedata om til StateFlow-en som hvert brukergrensesnitt samler inn.
Avhengigheter peker innover
Gullregelen er at ytre lag avhenger av indre lag, aldri omvendt. Presentasjonen kjenner domenet; domene kjenner ingen av nab lagene.
Kommuniser gjennom grensesnitt
Lag kobles sammen gjennom interfaces, ikke konkrete klasser. Domenet erklærer hva det trenger, mens data-laget leverer implementasjonen, slik at De fritt kan bytte ut deler.
interface UserRepository {
suspend fun load(id: String): User
}Modeller per lag
Hvert lag kan ha sine egne datatyper: en nettverks-DTO i data-laget og en ren modell i domenet. Mapping mellom dem hindrer særtrekk ved API-et i å lekke inn i reglene.
Hvorfor skille dem
Separasjon lønner seg når kravene endres. Bytt ut et REST-API med GraphQL, så er det bare data-laget som endres; domenet og presentasjonen merker ingenting.
Alt ligger i shared
Data, domene og presentasjon kan alle ligge i commonMain. Både Android og iOS gjenbruker hele stakken og leverer bare den endelige plattformspesifikke skjermen.
Start enkelt
De trenger ikke ti lag den første dagen. Begynn med disse tre, hold avhengighetspilene ryddige, og la strukturen vokse først når det faktisk er nyttig. 🙂
Hurtigsjekk
Hvilken vei bør avhengighetene gå mellom lagene?
Oppsummering
De delte den felles koden inn i data, domene og presentasjon, lot avhengighetene peke innover og koblet lagene sammen gjennom grensesnitt. Tydelige grenser og enkle endringer. 🎉
Lær deg Kotlin med en AI-veileder – gratis
Skriv og kjør ekte kode i nettleseren, få umiddelbar hjelp fra en AI-veileder som er tilgjengelig døgnet rundt, og fortsett der du slapp – på nettet eller i appen.
- Kurs
- 30
- Leksjoner
- 120
Ofte stilte spørsmål
Er leksjonen «Lagdelt arkitektur for KMP» gratis?
Ja – hele teksten i «Lagdelt arkitektur for KMP» er gratis å lese her på nettet. For å øve interaktivt med en innebygd kodeeditor og en AI-veileder som er tilgjengelig døgnet rundt, og for å låse opp resten av Kotlin Multiplatform Academy-kurset, kan du oppgradere til CoddyKit PRO. Kurset i Kotlin Multiplatform Academy inneholder totalt 4 leksjoner.
Hva lærer jeg i «Lagdelt arkitektur for KMP»?
Skill data, domene og presentasjon på en ryddig måte. Du øver på Kotlin Multiplatform Academy med praktisk kode som du kjører direkte i nettleseren, mens en AI-veileder som er tilgjengelig døgnet rundt, svarer på spørsmålene dine mens du jobber deg gjennom leksjonen.
Trenger jeg erfaring for å begynne med Kotlin Multiplatform Academy?
Ingen tidligere erfaring er nødvendig. Kotlin Multiplatform Academy på CoddyKit er lagt opp for både nybegynnere og viderekomne, så De kan begynne her eller helt fra start og lære i Deres eget tempo. Dette er leksjon 1 av 4.
Hvor lang tid tar leksjonen «Lagdelt arkitektur for KMP»?
De fleste CoddyKit-leksjoner tar omtrent 5–10 minutter. Hver leksjon er kort og interaktiv, slik at De gjør jevne fremskritt og kan fortsette akkurat der De slapp – både på nettet og i appen.
Kan jeg skrive og kjøre kode i denne Kotlin Multiplatform Academy-leksjonen?
Ja. Alle Kotlin Multiplatform Academy-leksjoner har en innebygd kodeeditor, slik at De kan skrive og kjøre ekte kode direkte i nettleseren og få umiddelbar tilbakemelding fra AI – uten lokal konfigurering.
Alle leksjonene i dette kurset
- Lagdelt arkitektur for KMP
- Use cases og domenegrenser
- Del delt kode inn i moduler
- Avgjør hva som skal forbli native