Jetpack Compose Academy · Oppitunti

Flow-virtojen kartoittaminen ja yhdistäminen

Muuntakaa virtoja ennen niiden päätymistä näytölle.

Oppitunti 2/413 vaihetta

Flow-virtojen kartoittaminen ja yhdistäminen on ilmainen Jetpack Compose Academy-oppitunti CoddyKitissä. Tämä on oppitunti 2/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Jetpack Compose Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Muotoile data ennen käyttöliittymää

Raakadata vastaa harvoin suoraan näytön tarpeita. Flow-virran operaattoreilla muunnetaan virta valmiiksi käyttöliittymän tilaksi.

Muunna map-operaattorilla

map-operaattori suorittaa funktion jokaiselle tuotetulle arvolle ja välittää tuloksen eteenpäin muuttamatta alkuperäistä virtaa.

val names = users.map { it.name }

Suodata turha data

Käytä filter-operaattoria sellaisten arvojen poistamiseen, joita et tarvitse, jotta vain ehtosi täyttävät alkiot päätyvät käyttöliittymään.

val active = users.filter { it.isActive }

Yhdistä kaksi virtaa

combine-operaattori yhdistää useita flow-virtoja ja suoritetaan uudelleen aina, kun jokin niistä tuottaa arvon. Tällöin käytössä on kunkin virran viimeisin arvo.

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

combine rakentaa käyttöliittymän tilan

Yleinen toimintatapa on yhdistää useita lähdevirtoja yhdeksi muuttumattomaksi UiState-olioksi, joka kuvaa koko näytön.

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

Odota kaikkia zip-operaattorilla

Kun combine suoritetaan minkä tahansa muutoksen yhteydessä, zip yhdistää tuotetut arvot yksi yhteen ja odottaa, että molemmat virrat ovat tuottaneet uuden arvon.

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

Vaihda uuteen virtaan

flatMapLatest-operaattorilla uusi arvo peruuttaa edellisen sisemmän virran ja vaihtaa uuteen. Tämä sopii erinomaisesti reaaliaikaiseen hakuun.

query.flatMapLatest { repo.search(it) }

Operaattorit ovat oletusarvoisesti kylmiä

mapin ja filterin kaltaiset muunnokset ovat kylmiä: ne kuvaavat tehtävää työtä, mutta eivät tee mitään ennen kuin jokin alavirran osa kerää virtaa.

Ketjuta operaattoreita vapaasti

Voit ketjuttaa operaattorit putkeksi. Kukin lukee yläpuolellaan olevaa virtaa ja syöttää tuloksen alapuolellaan olevalle operaattorille ylhäältä alaspäin.

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

Käsittele virheet ketjussa

catch-operaattori sieppaa ylempänä syntyvät poikkeukset, joten voit lähettää varaarvon koko virran kaatumisen sijaan.

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

Pidä logiikka ViewModelissa

Suorita combine- ja map-käsittely ViewModelissa ja tuo sen jälkeen saataville yksi selkeä tilavirta. Composable pysyy yksinkertaisena ja passiivisena.

Pikatarkistus

Valitse tehtävään sopiva operaattori.

Kertaus: Mapping ja Combining

Hienosti tehty! Operaattorit, kuten map, filter ja combine, muokkaavat ja yhdistävät ViewModelissa olevia virtoja, joten käyttöliittymä saa juuri tarvitsemansa tilan. 🎯

Aloita maksutta

Opi Kotlin tekoälytuutorin avulla — ilmaiseksi

Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.

Kurssit
30
Oppitunnit
120

Usein kysytyt kysymykset

Onko oppitunti ”Flow-virtojen kartoittaminen ja yhdistäminen” ilmainen?

Kyllä – oppitunnin ”Flow-virtojen kartoittaminen ja yhdistäminen” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Jetpack Compose Academy-kurssin, päivitä CoddyKit PROhon. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Flow-virtojen kartoittaminen ja yhdistäminen”?

Muuntakaa virtoja ennen niiden päätymistä näytölle. Harjoittelet Jetpack Compose Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Jetpack Compose Academy-opiskelun?

Aiempi kokemus ei ole tarpeen. CoddyKitin Jetpack Compose Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 2/4.

Kuinka kauan ”Flow-virtojen kartoittaminen ja yhdistäminen”-oppitunnin suorittaminen kestää?

Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.

Voinko kirjoittaa ja suorittaa koodia tällä Jetpack Compose Academy-oppitunnilla?

Kyllä. Jokainen Jetpack Compose Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.

Kaikki tämän kurssin oppitunnit

  1. StateFlow vai SharedFlow
  2. Flow-virtojen kartoittaminen ja yhdistäminen
  3. stateIn ja WhileSubscribed
  4. Kertaluonteiset tapahtumat Channels-kanavilla
← Takaisin: Jetpack Compose Academy