Jetpack Compose Academy · Lektion

Mapping og kombination af flows

Transformér streams, før de når skærmen.

Lektion 2 af 413 trin

Mapping og kombination af flows er en gratis Jetpack Compose Academy-lektion på CoddyKit. Dette er lektion 2 af 4. Du kan læse hele lektionen gratis nedenfor — og derefter øve dig praktisk i browseren med en indbygget kodeeditor og en AI-vejleder, der er tilgængelig døgnet rundt. Den er en del af læringsforløbet i Jetpack Compose Academy, og dine fremskridt synkroniseres på tværs af nettet og CoddyKit-appen. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Form data, før de når brugerfladen

Rå data passer sjældent til det, skærmen har brug for. Du bruger flow-operatorer til at omdanne en strøm til klar brugerfladetilstand.

Omdan med map

Operatoren map kører en funktion på hver udsendelse og sender resultatet videre, mens den oprindelige strøm forbliver uændret.

val names = users.map { it.name }

Filtrér støj fra

Brug filter til at fjerne udsendelser, du ikke er interesseret i, så kun elementer, der opfylder din betingelse, når frem til brugerfladen.

val active = users.filter { it.isActive }

Kombinér to strømme

Operatoren combine fletter flere flow sammen og kører igen, hver gang et af dem udsender noget, så du får den seneste værdi fra hvert flow.

combine(query, results) { q, r -> SearchUi(q, r) }

Combine opbygger brugerfladetilstand

Et almindeligt mønster er at kombinere flere kildeflow til ét uforanderligt UiState-objekt, der beskriver hele skærmen.

combine(items, loading, error) { i, l, e ->
    UiState(i, l, e)
}

Vent på alle med zip

Hvor combine udløses ved enhver ændring, parrer zip udsendelser én til én og venter, indtil begge flow har produceret en ny værdi.

flowA.zip(flowB) { a, b -> a + b }

Skift til en ny strøm

Med flatMapLatest annullerer en ny værdi det tidligere indre flow og skifter til et nyt, hvilket er perfekt til livesøgning.

query.flatMapLatest { repo.search(it) }

Operatorer er som standard kolde

Omdannelser som map og filter er kolde: De beskriver arbejde, men gør intet, før noget længere nede indsamler dem.

Kæd operatorer frit

Du kan kæde operatorer sammen i en datastrøm. Hver operator læser strømmen ovenfor og sender videre til den nedenfor, oppefra og ned.

users.filter { it.isActive }
    .map { it.name }

Håndtér fejl i kæden

catch-operatoren opfanger undtagelser tidligere i flowet, så du kan udsende en fallback i stedet for at få hele flowet til at gå ned.

repo.load().catch { emit(emptyList()) }

Bevar logikken i ViewModel

Udfør dit arbejde med combine og map i ViewModel, og eksponér derefter ét rent state-flow. Composable forbliver enkel og uden logik.

Hurtigt tjek

Vælg den operator, der passer til opgaven.

Opsamling: Mapping og kombinering

Flot arbejde! Operatorer som map, filter og combine omformer og sammenfletter flows i ViewModel, så brugerfladen får præcis den state, den har brug for. 🎯

Gratis at komme i gang

Lær Kotlin med en AI-underviser — gratis

Skriv og kør rigtig kode i din browser, få øjeblikkelig hjælp fra en AI-underviser døgnet rundt, og fortsæt, hvor du slap, på web eller i appen.

Kurser
30
Lektioner
120

Ofte stillede spørgsmål

Er lektionen “Mapping og kombination af flows” gratis?

Ja — hele teksten til “Mapping og kombination af flows” kan læses gratis her på nettet. Hvis du vil øve dig interaktivt med en indbygget kodeeditor og en AI-vejleder døgnet rundt og få adgang til resten af Jetpack Compose Academy-kurset, skal du opgradere til CoddyKit PRO. Jetpack Compose Academy-kurset indeholder 4 lektioner i alt.

Hvad lærer jeg i “Mapping og kombination af flows”?

Transformér streams, før de når skærmen. Du øver dig i Jetpack Compose Academy med praktisk kode, som du kører direkte i browseren, og en AI-vejleder døgnet rundt besvarer dine spørgsmål, mens du arbejder dig gennem lektionen.

Skal jeg have erfaring for at begynde på Jetpack Compose Academy?

Der kræves ingen tidligere erfaring. Jetpack Compose Academy på CoddyKit er tilrettelagt for både begyndere og øvede, så du kan starte her eller fra begyndelsen og lære i dit eget tempo. Dette er lektion 2 af 4.

Hvor lang tid tager lektionen “Mapping og kombination af flows”?

De fleste CoddyKit-lektioner tager cirka 5–10 minutter. Hver lektion er kort og interaktiv, så du gør løbende fremskridt og kan fortsætte, hvor du slap – på både web og app.

Kan jeg skrive og køre kode i denne Jetpack Compose Academy-lektion?

Ja. Alle Jetpack Compose Academy-lektioner har en indbygget kodeeditor, så du kan skrive og køre rigtig kode direkte i din browser og få øjeblikkelig feedback fra AI – uden lokal opsætning.

Alle lektioner i dette kursus

  1. StateFlow kontra SharedFlow
  2. Mapping og kombination af flows
  3. stateIn og WhileSubscribed
  4. Engangshændelser med Channels
← Tilbage til Jetpack Compose Academy