Kotlin Multiplatform Academy · Oppitunti

Flow-perusteet jaetussa koodissa

Tuota arvojen virta commonMainista

Oppitunti 1/413 vaihetta

Flow-perusteet jaetussa koodissa on ilmainen Kotlin Multiplatform Academy-oppitunti CoddyKitissä. Tämä on oppitunti 1/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 Kotlin Multiplatform Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Arvojen virrat

Suspend-funktio palauttaa yhden arvon ja päättyy sitten. Flow on erilainen: se tuottaa kokonaisen arvojen virran ajan mittaan, yhden toisensa jälkeen. 🌊

Oletusarvoisesti kylmä

Flow on kylmä: sen sisältämä koodi ei tee mitään, ennen kuin joku aloittaa keräämisen. Ilman kerääjää työtä ei tehdä, joten jaettu koodi pysyy laiskana ja kevyenä.

Luo flow {} -rakentajalla

flow-rakentaja on yksinkertaisin tapa luoda virta. Sen sisällä kutsutaan emit-funktiota jokaisen arvon välittämiseksi kuuntelijoille.

fun ticks(): Flow<Int> = flow {
    emit(1)
    emit(2)
    emit(3)
}

emit välittää arvon

Jokainen emit-kutsu antaa yhden arvon kerääjälle ennen etenemistä. Virta päättyy vasta, kun rakentajan lohko palautuu.

Kerää vastaanottaaksesi

Flow luetaan kutsumalla sen collect-funktiota. Kerääminen on suspend-kutsu, joten se suoritetaan korutiinin sisällä ja lohkosi suoritetaan jokaiselle tuotetulle arvolle.

ticks().collect { value ->
    println(value)
}

Se toimii kaikkialla

Flow sisältyy kotlinx-coroutines-kirjastoon, joka on monialustainen. Täsmälleen sama commonMain-koodissa oleva flow-koodi toimii Androidissa ja iOS:ssä ilman muutoksia. 🎉

flowOf kiinteille arvoille

Kun arvot ovat jo tiedossa, flowOf paketoi ne heti Flow-olioksi. Se on nopein mahdollinen tapa luoda virta.

val names = flowOf("Ana", "Beto", "Cem")

Muunna List Flow-olioksi

Mikä tahansa Iterable voidaan muuntaa virraksi asFlow-funktiolla. Tämä on kätevää, kun käytettävissä on jo lista ja haluat käsitellä sen kohteet yksi kerrallaan.

val stream = listOf(10, 20, 30).asFlow()

Tuota arvoja ajan mittaan

Koska rakentaja on suspend-lohko, emissioiden väliin voi lisätä delay-kutsun. Näin voidaan mallintaa oikeita virtoja, kuten tikityksiä, anturilukemia tai kyselyitä.

flow {
    repeat(3) { i ->
        delay(1000)
        emit(i)
    }
}

Flow vai suspend

Valitse suspend-funktio yhtä asynkronista tulosta varten ja Flow, kun arvoja saapuu jatkuvasti. Oikea valinta pitää API:n tarkoituksenmukaisena.

Miksi se sopii jaettuun koodiin

Flow antaa jaetun kerroksen välittää tietoja niiden muuttuessa, ja kumpikin sovellus vain kuuntelee. Liiketoimintalogiikka ohjaa käyttöliittymää tietämättä, millä alustalla se toimii.

Pikatarkistus

Varmistetaan, että perusasiat jäivät mieleen.

Kertaus

Tutustuitte Flow-tyyppiin: se on kylmä virta, joka luodaan flow-rakentajalla ja luetaan collect-funktiolla. Se on monialustainen, joten sama virta syöttää tietoja sekä Androidille että iOS:lle. 🌊

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-perusteet jaetussa koodissa” ilmainen?

Kyllä – oppitunnin ”Flow-perusteet jaetussa koodissa” 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 Kotlin Multiplatform Academy-kurssin, päivitä CoddyKit PROhon. Kotlin Multiplatform Academy-kurssilla on yhteensä 4 oppituntia.

Mitä opin oppitunnilla ”Flow-perusteet jaetussa koodissa”?

Tuota arvojen virta commonMainista Harjoittelet Kotlin Multiplatform Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.

Tarvitsenko kokemusta aloittaakseni Kotlin Multiplatform Academy-opiskelun?

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

Kuinka kauan ”Flow-perusteet jaetussa koodissa”-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ä Kotlin Multiplatform Academy-oppitunnilla?

Kyllä. Jokainen Kotlin Multiplatform 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. Flow-perusteet jaetussa koodissa
  2. StateFlow jaettuun käyttöliittymätilaan
  3. Operaattorit: map, filter ja combine
  4. Flow-virtojen kerääminen Androidilla ja iOS:llä
← Takaisin: Kotlin Multiplatform Academy