Flow-virtojen kartoittaminen ja yhdistäminen
Muuntakaa virtoja ennen niiden päätymistä näytölle.
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. 🎯
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
- StateFlow vai SharedFlow
- Flow-virtojen kartoittaminen ja yhdistäminen
- stateIn ja WhileSubscribed
- Kertaluonteiset tapahtumat Channels-kanavilla