0Pricing
Kotlin Multiplatform Academy · Урок

Сбор Flow из Swift

Связывайте StateFlow со SwiftUI без утечек

«Сбор Flow из Swift» — бесплатный урок Kotlin Multiplatform Academy на CoddyKit. Это урок 3 из 4. Ты можешь прочитать весь урок бесплатно ниже — а потом практиковать его прямо в браузере с встроенным редактором кода и ИИ-репетитором 24/7. Это часть пути обучения Kotlin Multiplatform Academy, и твой прогресс синхронизируется между веб-версией и приложением CoddyKit. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.

Части этого урока еще не переведены и отображаются на английском.

Flows Are Trickier

A Kotlin Flow emits many values over time. Swift has no built-in way to collect it, so you need a small bridge.

val users: StateFlow<List<User>>

Why Not Just Await

Await fits a single result, but a Flow is a stream. You must keep listening, which means collecting inside a coroutine.

Expose a Collect Helper

A common pattern is a shared helper that takes a callback and collects the Flow, calling Swift each time a value arrives.

fun watch(onEach: (User) -> Unit)

Wrap in ObservableObject

On the Swift side, an ObservableObject holds the latest value as a published property so SwiftUI redraws on each emission.

class UserStore: ObservableObject {
    @Published var users = []
}

Start Collecting

When the wrapper appears, call the shared watch helper and assign each emitted value to the published property.

repo.watch { self.users = $0 }

Keep the Job

The collect helper returns a cancellation handle. Store that job so you can stop the stream when the view goes away.

Cancel on Disappear

In onDisappear, call cancel on the saved job so the coroutine stops and you avoid a leaked, forever-running collector.

job.cancel()

StateFlow Has a Value

A StateFlow always holds a current value, so Swift can read its initial state immediately before any new emissions arrive.

Threading Matters

Make sure each value reaches Swift on the main thread, since updating SwiftUI state off the main thread causes problems.

Let SKIE Do It

The library SKIE turns Flows into Swift AsyncSequence, so you can for-await over them and skip writing manual collectors.

One Stream, Live UI

With the bridge in place, your shared Flow drives SwiftUI live: every emission updates the screen, just like on Android.

Quick Check

Let us confirm the safe way to consume a Flow from Swift.

Recap

Bridge a Flow to Swift with a collect helper plus an ObservableObject, update on the main thread, and cancel the job to avoid leaks. 🚀

Часто задаваемые вопросы

Урок «Сбор Flow из Swift» бесплатный?

Да — полный текст урока «Сбор Flow из Swift» бесплатно доступен здесь в веб-версии. Чтобы практиковать его интерактивно (встроенный редактор кода и ИИ-репетитор 24/7) и разблокировать остальной курс Kotlin Multiplatform Academy, подпишись на CoddyKit PRO. Курс Kotlin Multiplatform Academy содержит 4 уроков всего.

Чему я научусь в уроке «Сбор Flow из Swift»?

Связывайте StateFlow со SwiftUI без утечек Ты практикуешь Kotlin Multiplatform Academy с помощью реального кода, который запускаешь прямо в браузере, и ИИ-репетитор 24/7 отвечает на твои вопросы во время урока.

Нужен ли мне опыт, чтобы начать Kotlin Multiplatform Academy?

Предыдущий опыт не требуется. Kotlin Multiplatform Academy на CoddyKit структурирован для всех уровней — от новичков до продвинутых, поэтому ты можешь начать отсюда или с самого начала и учиться в своем темпе. Это урок 3 из 4.

Сколько времени занимает урок «Сбор Flow из Swift»?

Большинство уроков CoddyKit занимают около 5–10 минут. Каждый из них компактный и интерактивный, поэтому ты постоянно делаешь прогресс и продолжаешь с того же места в веб-версии и приложении.

Можно ли писать и запускать код в этом уроке Kotlin Multiplatform Academy?

Да. Каждый урок Kotlin Multiplatform Academy включает встроенный редактор кода, поэтому ты пишешь и запускаешь реальный код прямо в браузере и получаешь моментальную обратную связь от AI — локальная установка не требуется.

Все уроки этого курса

  1. Как Kotlin преобразуется в Objective-C
  2. Функции suspend как async в Swift
  3. Сбор Flow из Swift
  4. @ObjCName и API, удобные для Swift
← Назад к Kotlin Multiplatform Academy